PDA

View Full Version : نحوه کار با پایگاه داده



ealvandi
جمعه 08 اسفند 1393, 18:36 عصر
سلام
من تو کار کردن با پایگاه داده و اینکه چجور باید با یک کوئری کار کنم و دستورات مختلف رو اجرا کنم و اینکه چه فرقی بین query builder و Eloquent orm هست و اصلا چجوری باید باهاشون ارتباط بر قرار کنم ، مشکل دارم . البته تنظیمات فایل database.php رو درست انجام دادم و دستورات query builder و Eloquent orm رو خوندم و مشکلم تو فراخوانی مدل از کنترولر نحوه اتصال و گرفتن خروجی از یک کوئری و بازگشتش به کنترولرهست

اگر لطف کنید با یک مثال کمکم کنید ممنون میشم.

imohammad
جمعه 08 اسفند 1393, 19:52 عصر
مثلا من یه کنترلر دارم به اسم postController و یه مدل به اسم post که محتویات جدول posts رو از دیتابیس میخونه و مینویسه، همچنین یه ویو دارم به اسم postView.blade.php
حالا چطوری پست ها رو بخونم و توی ویو نشون بدم؟
توی کنترلر به شکل زیر کد میزنم


public function index() {
$posts = Post::all();
return View::make('postView')->with(['posts'=>$posts]);
}


بعد توی ویو هم به صورت زیر به محتویات $posts دسترسی دارم


@foreach($posts as $item)
{{$item->title}}
{{$item->content}}
@endforeach


حالا کافیه تو روت دستور زیرو بنویسی


Route::get('post', 'postController@index');


بعدش با زدن آدرس site.com/post میتونی نتیجه کارو ببینی

ealvandi
جمعه 08 اسفند 1393, 20:19 عصر
من میخواستم کؤری رو تو فایل مدل بنویسم و کدهاش از کنترلر مستقل باشه قبلا یک بار با pdo این کار رو کردم به این صورت بود که تو کنترولر یک object از مدل میساختم و بعد متدهایی رو که تو مدل نوشته بودم فراخوانی میکردم که البته کدهای کؤری مستقل از کنترلر بود. البته الان همون کد خطا میده. میخاستم بدونم از eloequent و query builder چجوری تو مدل استفاده کنم و چجور باید یک connection ایجاد کنم

rezakho
شنبه 09 اسفند 1393, 13:15 عصر
query builder برای ساختن کوئری های پیچیده استفاده میشه، کار اصلیش تولید متن sql هست، خروجی که میده مدل نیست و فقط یک شی ساده هست که فیلدها رو توی خودش داره، بنابراین خبری از ریلیشن و ... نخواهد بود
مدل اما بعکس، برای جستجو از کوئری بیلدر استفاده می کنه، خروجیش مدل هست و می تونید از رابطه ها و orm استفاده کنید

در مورد استفاده از این دو هم، کاملا بستگی به نیازتون داره