آموزش کار با پایگاه داده در لاراول با استفاده از Laravel Eloquent
کار با پایگاه داده در لاراول بسیار ساده و جذاب است. در حال حاضر لاراول از پایگاه داده ای
- MySQL
- Postgres
- SQLite
- SQL Server
پشتیبانی می کند
شما می توانید پرس و جو های (کوئری) خود را با استفاده از SQL، query builder و یا Eloquent ایجاد کنید. با استفاده از Eloquent می توانید به سادگی هر چه بیشتر با دیتابیس کار کنید. در این روش هر جدول با یک مدل متناظر است که برای تعامل داده با آن جدول بکار می رود. در واقع مدل به شما امکان می دهد تا پرس و جوی خود را برای داده های مورد نظر در جدول اجرا کنید. به عنوان مثال ایجاد یک رکورد جدید در جدول به کمک Insert.
قبل از شروع ابتدا یک مدل الوکوئنت خواهیم ساخت. مدل ها معمولا در پوشه app قرار دارند هر چند شما مجاز به ذخیره آنها در مسیر دلخواه خود می باشید. دقت کنید همه مدل ها دارای کلاس Illuminate\Database\Eloquent\Model هستند.
ساده ترین راه برای ساخت یک مدل در لاراول استفاده از دستور make:model می باشد. بنابر این در خط فرمان CMD و در مسیر روت پروژه خود دستور زیر را وارد کنید:
php artisan make:model Name
بجای عبارت Name نام مدل خود را وارد کنید. دقت کنید که حرف اول نام مدل باید حتما با حرف بزرگ نوشته شود به عنوان مثال حتما بصورت "Name" نوشته شود و نه "name" . همچنین مدل متناظر با یک جدول می باشد جدول مذکور هم نام با مدل می باشد با این تفاوت که حرف اول آن کوچک و انتهای نام آن به s ختم می شود برای مثال مدل Name متناظر با جدول names می باشد.
حال اجازه دهید برای مثال به بررسی مدل Card بپردازیم این مدل، امکان ذخیره و بازیابی اطلاعات از جدول cards را به ما می دهد. (به حرف اول نام ها توجه کنید نام مدل با حرف بزرگ و نام جدول با حرف کوچک نوشته میشود همچنین نام جدول به s ختم میشود)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Card extends Model {
//
}
?>
نام جدول:
توجه داشته باشید که نیازی نیست نام جدول مورد استفاده را در Eloquent تعریف کنیم. convention بصورت پیش فرض نام کلاس هم نام با مدل که به حرف s نیز ختم شده را بعنوان جدول متناظر با مدل شناسایی خواهد کرد. در این مثال Eloquent مدل Card را متناظر با جدول cards شناسایی و جهت ذخیره و بازیابی اطلاعات استفاده می کند.
برای ساخت یک تیبل از دستور زیر استفاده میکنیم
php artisan make:migration create_cards_table --create=cards
این دستور جدول cards را در migration با نام createcardstable برای ما ایجاد خواهد کرد
حال از مسیر database/migrations نام مایگریشن ایجاد شده را انتخاب کنید و یک ستون جدید با نام title به جدول cards اضافه کنید
سپس در خط فرمان دستور زیر را جهت اعمال تغییرات در جدول وارد کنید
php artisan migrate
این دستور ستون ایجاد شده را در جدول cards ثبت خواهد کرد
خب حالا نوبت به وارد کردن داده های مورد نظر در جدول cards می رسد
لاراول از ابزار قدرتمندی به نام tinker جهت کار با دیتابیس بهره می برد. دستور زیر را در خط فرمان وارد نمایید
php artisan tinker
حال برای وارد کردن رکورد جدید در جدول cards از دستور زیر استفاده می کنیم
$card = new App\ Card;
$card - > title = 'title 1';
$card - > save(); //ذخیره یک رکورد جدید
$card= new App\Card;
$card -> title = 'title 2';
$card -> save(); //ذخیره یک رکورد جدید
$card= new App\Card;
$card -> title = 'chasboon';
$card -> save(); //ذخیره یک رکورد جدید
خب برای بازیابی داده های ذخیره شده از جدول cards و نمایش آن در صفحه مورد نظر از کنترلر استفاده می کنیم
فایل Route.php را از مسیر app/Http پیدا کرده و کد زیر را به آن اضافه کنید.
Route::get('card'/{cards}', 'CardsController@show');
حالا فایل CardsController را از مسیر app/Http/Controllers باز کرده و تابع زیر را در آن تعریف کنید
public function show($id) {
return Crad::find($id);
}
دقت کنید حتما در ابتدای این فایل از عبارت use App\Card استفاده کنید در غیر اینصورت پروژه اجرا نخواهد شد.
تبریک!!!! شما موفق به اجرای کامل پروژه شده اید. به منظور اجرای پروژه و مشاهده خروجی دستور زیر را در خط فرمان وارد کنید
php artisan serve
و در مرورگر خود آدرس localhost:8000/card/1 را وارد کنید در صورتیکه مراحل را به درستی انجام داده باشید باید تصویری مشابه زیر ببینید
جهت مطالعه بیشتر می توانید از مستندات لاراول بهره ببرید