نصب و راه اندازی فریم ورک Laravel – ایجاد جداول با Schema

نصب و راه اندازی فریم ورک Laravel – ایجاد جداول با Schema

حالا که می دانیم چگونه در لاراول به دیتابیس متصل شویم، بیایید یک جدول را در داخل دیتابیس ایجاد کنیم. البته که می توانید این کار را از طریق phpMyAdmin یا خط فرمان انجام دهید، اما شما مقدار بسیار زیادی انعطاف پذیری را با ساخت ساختار بانک اطلاعاتی خود از طریق برنامه نویسی به دست می آورید. اصطلاح دیگر برای ساختار دیتابیس، schema می باشد، ما می خواهیم از Schema ساز برای انجام کارهای خود استفاده کنیم. ابتدا باید مطمئن شوید دیتابیس شما هنگام دسترسی هر کاربر به برنامه شما ساخته شده است.

 

.توجه: این آموزش تنها با نسخه ۴ لاراول هماهنگی دارد 

 

بنابراین Schema ساز باید در فایل routes.php تعریف شود، به خاطر اینکه می خواهیم صفحه ای که درخواست شد تابع اجرا شود، برای این کار کدهای لازم را به صورت زیر به فایل routes.php اضافه می کنیم:

 

 

در کد بالا ما تمام کدهای ساخت چارچوب جدول را با فراخوانی کلاس Schema انجام داده ایم، و به دنبال آن از متد خاص برای ساخت یعنی متد create استفاده کرده ایم.  حال، در داخل متد create دو آرگومان دیده می شود، اولی، برای مشخص کردن نام جدول است که می خواهیم ساخته شود، که در اینجا با نام art مشخص شده است، به دنبال آن فراخوان تابع آمده است، و در داخل آن پارامتری که با نام closure شناخته شده است قرار می دهیم. Clousure تنها یک متغیر به عنوان آرگمان قبول می کند، و این به عنوان نگه داشتن طرح جدول های ما که قرار است ساخته شود مورد استفاده قرار می گیرد. در اینجا با نام newtable تعریف شده است.

 

 

همانطور که می دانیم، بیشتر دیتابیس ها شامل یک شناسه منحصر به فرد یا آی دی برای هر ورودی می باشند، بنابراین این کار را با ساخت اولین ستون از جدول خود انجام می دهیم:

 

 

اگر با دستورات MySQL آشنا باشید، پس می دانید که متد increments هیچ فرقی با auto_increment ندارد. در بین پرانزها هم نام ستون را مشخص می کنیم، این متد باعث می شود مقدار id در هر بار وارد کردن مقدار به جدول مقدارش به صورت خودکار افزایش یابد.

 

 

بله، همانطور که حدس زده اید دستور بالا، ستونی با نوع داده ای string با نام artist ایجاد میکند. نوع داده ای string به طور پیشفرض ۲۵۵ کاراکتر برای ستون artist در نظر می گیرد.

 

 

حال در بالا می توانید تعداد کاراکتری که برای ستون خود لازم دارید را مشخص کنید، که در این مثال ستون title با تعداد کاراکتر ۵۰۰ مشخص شده است.

 

 

اگر به نوشته با مقدار کاراکتر نا مشخص نیاز دارید می توانید از متد text استفاده کنید.

 

 

ما همچنین ستون هایی برای تاریخ ساخت آثار هنری یا نمایشگاه می توان داشته باشیم، همانطور که در بالا ستون created و exhibition_date با متد date ساخته شده است.

 

 

در آخر یکی از نوع ستون خاص لاراول به نام timestamps را وارد می کنیم. این متد هیچ آرگومانی را قبول نمی کند، این متد دو ستون را در جدول ایجاد می کند، یکی برای ضبط زمانی که رکورد اول ثبت شد، و دیگری زمان آخرین به روز رسانی را ثبت می کند. ما از اینها در قسمت بعدی هنگام کار با migration استفاده خواهیم کرد.

حال زمان اجرا کدهای خود فرا رسیده است. برای این کار فایل خود را ذخیره کرده و به مرورگر خود برگردید. به آدرس http://localhost:8000 رفته، اگر خطایی مشاهده نکردید به این معنی است که جداول به درستی ساخته شده اند. برای مشاهده ساختار جدول ها هم می توانید به phpMyAdmin خود مراجعه کنید.

حال که جدول ما ایجاد شده است، زمان آن است که به فایل routes.php برگردیم و کدها را پاک یا comment کنیم تا دیکر اجرا نشوند. برای راحتی مب توانید این کدها را در فایل دیگر ذخیره کنید تا در دیگر پروژه ها از آنها استفاده کنید:

 

 

شما می توانید ستون های دلخواه خود را از طریق متد جدول schema اضافه یا حذف کنید. به عنوان مثال می خواهیم به جدول art یک ستون alumni اضافه کنیم و ستون exhibition_date را حذف کنیم، برای این کار فایل routes.php را ویرایش می کنیم:

 

 

حال فایل را ذخیره کنید و دوباره به آدرس http://localhost:8000 رفته تا کدهای بالا اجرا شوند، و در مرحله بعد برای مشاهده تغییرات در ساختار جدول به phpMyAdmin خود مراجعه کنید.

لازم به ذکر است که تنها چیزی که نمی شود با الگو ساز یا Scema Builder نوع ستون موجود را تغییر داد:

 

  • افزایش طول یک رشته
  • تغییر عدد صحیح به عدد اعشاری

 

با این حال تمام این تغییرات را می توان با یکی از ویژگی های لاراول یعنی Migration انجام داد، که در قسمت بعد خواهیم دید.