آموزش لاراول – قسمت ۴

با سلام خدمت خوانندگان وبسایت توسعه دهندگان در قسمت های قبل آموزش لاراول با مبانی فریمورک لاراول اشنا شده اید در ادامه قصد داریم شما را بیشتر با این فریمورک قدرتمند اشنا کنیم . قبل از ادامه این مبحث باید مژده بدهم که تیم لاراول نسخه ۵٫۲ از این فریمورک محبوب را منتشر کرده که حاوی ویژگی های هیجان اور جدیدی است که در ادامه این سری اموزشی به ان خواهیم پرداخت تا شما عزیزان با جدیدترین امکانات این فریمورک محبوب اشنا باشید.در قسمت قبل آموزش لاراول با فرستادن متغیر به view اشنا شدید در این قسمت ابتدا شما را با ویژگی بسیار عالی این فریمورک محبوب یعنی migration اشنا میکنیم تا ابتدا پایگاه داده خود را ساخته و سپس به ساختن اپلیکیشن مورد نیاز خود بپردازید. حتما میدانید که هر اپلیکیشن نیاز به دیتابیسی برای ذخیره اطلاعات مورد نیاز برنامه دارد معمولا برنامه نویسان بصورت دستی یعنی با برنامه های کار با دیتا بیس برنامه خود را می سازند اما در لاراول قضیه اینطور نیست شما در لاراول جدول های پایگاه داده را با کد مینویسید تا هر کس در هر کجای دنیا که به برنامه شما دسترسی پیدا کرد فقط با یک دستور پایگاه داده خود را بسازد. لاراول به طور پیشفرض دو جدول شما را می سازد. که این دو جدول شامل جدول کاربر یا user و جدول password reset است . که از نام انها کاربدشان کاملا مشخص است. برای جستجو و مشاهده فایلهای مربوط به migration وارد پوشه database سپس پوشه migation شوید . این پوشه پوشه ای است که لاراول برای ذخیره فایلهای مربوط به پایگاه داده از ان استفاده می کند . فرض کنید شما در حال ساخت برنامه ای برای دخیره tasks ها برای کاربران هستید و برای این منظور نیاز به جدولی به نام tasks دارید که شامل اطلاعات زیر است.

یعنی جدول tasks نیاز به تیتر و بدنه و id کاربر دارد . این شناسه برای ان است که مشخص شود هر کدام از این task ها مربوط به کدام کاربر در جدول کاربر است که در واقع کلید خارجی شماست . حال محیط کامند را باز کرده و وارد پوشه برنامه شوید . و ستور زیر را وارد کنید

php artisan make:migration create_tasks_table –create=tasks

دستور بالا به لاراول می گوید فایلی برای درست کردن جدول تسک در پوشه migration بساز و نام ان را هم create_tasks_table بگذار . بعد از اجرای موفقیت امیز دستور بالا وارد پوشه migration شوید و فایل جدید را با ادیتور دلخواه باز کنید.باید با فایلی با محتویات زیر روبه رو شوید.

اگر به جدول بالا دقت کنید می بینید که laravel برای ساختن جدول دو function دارد تابع اول با زدن دستور migrate اجرا میشود و تابع بعدی برای از بین بردن یا برگشتن به عقب استفاده می شود.قسمتی که شما نیاز دارید تا ان را ویرایش کنید قسمت تابع up می باشد. لاراول به طور پیشفرض یک کلید خودکار افزایشی و دو فیلد زمان created_at و uptadet_at میسازد که به طور خودکار پر می شود . شما می توانید این دو فیلد را حذف کنید اما پیشنهاد نویسنده این است که برای همه جدول های به این دو فیلد دست نزنید .حال به مبحث اصلی می رویم چطور باید فیلد های جدید به جدول اضافه کنیم . اضافه کردن فیلدهای جدید به جدول همانند همان دو فیلد پیشفرض لاراول صورت می گیرد مثلا برای جدول tasks بصورت زیر انجام می شود.

همانطور که مشاهده میکنید به جدولمان یک varchar یا انطور که لاراول دوست دارد بنامد string به نام title داریم.و یک text به نام body داریم . برای مشاهده تمام تابع های جدول ساز در لاراول به این لینک قسمت available column types مراجعه کنید .

اما به یکی از قسمتهای مهم در لاراول میرسیم و ان ارتباط بین جدول هاست . با توجه به اینکه هر tasks در این جدول مربوط به یک کاربر در جدول کاربر ها می باشد به یک فیلد نیاز داریم تا این ارتباط را مشخص کند و به ان کلید خارجی میگوییم که کلید خودکار افزایشی در جدول کاربر می باشد . این را هم در نظر داشته باشید که نامگذاری کلید خودکار افزایشی در لاراول دلخواه نیست و لاراول از تمپلیتی برای ارتباط با ان استفاده می کند . و وقتی می خواهید جدول خود را با کلید جدول کاربر ارتباط دهید حتما باید از user_id استفاده کنید و اگر میخاستید با به فرض جدول کامنتها ارتباط برقرار کنید باید از comment_id  استفاده کنید البته با توجه به این که لاراول اپن سورس است و در دنیای متن باز محدودیتی وجود ندارد شما میتوانید به راحتی نام دلخواه خود را به لاراول بشناسانید که در درسهای اینده به ان خواهیم پرداخت.اما به تفسیر خط اخر میپردازیم . در این خط به لاراول می گوییم که :

user_id کلید خارجی جدول ماست که به id در  جدول users باز می گردد و درزمانی که کاربری حذف شد تمام تسک های ان را نیز  حذف کن.

قبل از این که پایگاه داده خود را به اصطلاح migrate کنیم باید پایگاه داده ای بسازیم و ان را به لاراول بشناسانیم . بدین منظور ابتدا باید پایگاه داده ای که می خواهید استفاده کنید انتخاب کنید لاراول از sqllite و mysql و sqlserver وpostgresql پشتیبانی می کند . برای این که پایگاه داده خود را به لاراول معرفی کنید به پوشه config رفته  و سپس فیل database.php را باز کنید. در قسمتی از فایل با متن زیر مواجه می شوید

این همان قسمتی است که باید پایگاه داده مورد نیاز خود را به لاراول بشناسانید . به طور پیشفرض پایگاه داده مورد استفاده لاراول mysql می باشد بنابراین اگر از mysql استفاده می کنید نیازی به ویرایش این فایل ندارید . اما اگر مثلا از sqlserver استفاده میکنید باید به جای mysql از sqlsrv استفاده کنید.که میتوانید معال کلمات مورد استفاده برای پایگاه داده خود را در زیر همان قسمت مشاهده کنید.بعد از کانفیگ کردن این فایل در پوشه اصلی اپلیکیشن فایل .env را باز کنید این همان فایلی است که برای اتصال به پایگاه داده ای که انتخاب کرده اید ویرایش کنید . فرض کنید برای این اپلیکیشن از mysql استفاده کرده ایم و با استفاده از phpmyadmin پایگاه داده ای به نام test ساخته ایم فایل .env بعد از ویرایش به صورت زیر خواهد بود

شما باید فقط از DB_HOST تا DB_PASSWORD را ویرایش کنید.اگر همه کانفیگ ها را درست انجام داده باشید حال بازدن دستور زیر لاراول پایگاه داده شما را خواهد ساخت.

php artisan migrate

migration از دستورات دیگری نیز پشتیبانی می کند . فرض کنید می خواهید یک ستون جدید به نام tag  به جدول tasks اضافه کنید برای ساختن فایل migration أن دستور زیر را وارد کنید.

php artisan make:migration add_coloumn_tag –table=tasks

اگر فرق ان با کامند اول این قسمت در table می باشد.

اگر بخواهید پایگاه داده خود را از بین ببرید تا همه چیز را از اول بسازید از دستور زیر استفاده کنید.

php artisan migrate:reset

اگر بخواهید پایگاه داده خود را از بین برده و همزمان پایگاه داده جدیدی که ویرایش کرده اید به اصطلاح migrate شود از دستور زیر استفاده کنید

php artisan migrate:refresh

اگر می خواهید اخیرین عملی که در پایگاه داده خود انجام داده اید برای مثال جدول جدیدی که ساخته اید را نمیخواهید و به اصطلاح می خواهید پایگاه داده خود را rollback کنید از دستور زیر استفاده کنید

php artisan migrate:rollback

برای مطالعه بیشتر می توانید به این لینک مراجعه کنید.

در همین جا قسمت ۴ را به پایان میبریم در قسمت بعد به معرفی مدل در آموزش لاراول خواهیم پرداخت و نشان می دهیم که چگونه Eloquent ORM  بسیاری از کارهای شما را برای ساخت برنامه کاربردی تان فقط با یک خط کد انجام می دهد.

 

    پاسخگو
    سینا در چهارشنبه ۱۷ آذر ۱۳۹۵ :

    سلام.خسته نباشید
    چند غلط تایپی اگر اشتباه نکنم داشتید توی کدهاتون
    –create=tasks
    –table=tasks
    باید به جای – از دابل دش استفاده کنید (–)
    ممنون از اموزش های خوبتون