اگر یادتان باشد در قسمت قبل دستور migrate:fresh را اجرا کرده ایم اما قبل از تست آن باید نکته ای را برایتان توضیح بدهم. ما در همان قسمت از کلاس User متد create را صدا زده بودیم (کنترلر RegisterController.php). ما می دانیم که User::create یک کاربر را در پایگاه داده می سازد و این موضوع را در جلسه ی قبل بررسی کرده بودیم اما آیا می دانید کار با پایگاه داده در معماری MVC وظیفه ی چه عنصری است؟ View های ما که در پوشه ی views و Controller های ما هم در پوشه ی app->Http->Controllers قرار دارند اما Model های ما کجا هستند؟ Model های ما در پوشه ی app قرار دارند و فعلا یک Model بیشتر نداریم که همان فایل User.php است. بنابراین در کد بالا User::create در حال صدا زدن کلاس User است که همان Model ما و مسئول ارتباط با پایگاه داده می باشد. در واقع در Laravel برای ساخت یک فرد جدید و ثبت آن در پایگاه داده به شکل زیر عمل می شود (به جای کد بالا، کد زیر را در کنترلر تصور کنید). یعنی از یک Model به نام Flight یک نمونه (instance) ساخته ایم، سپس خصوصیات مد نظر خود (name) را برایش تعریف کرده ایم. مثلا اگر کاربر بالا ایمیل نیز داشته باشد باید email را به صورت جداگانه برایش تنظیم می کردیم. این کار را برای تک تک فیلد های فرم خود انجام خواهیم داد. یادتان باشد که flight همان Model و request$ شیء ای است که شامل کل درخواست کاربر می شود (تمام فیلد های فرم) و به صورت خودکار به متد های ما در کنترلر پاس داه می شود. بنابراین flight->email$ یعنی تعریف یک خصوصیت برای کاربر جدید و request->email$ یعنی دریافت مقدار فیلد email از درخواست کاربر. احتمالا شما هم متوجه شده اید که این کار دردسر دارد. فرض کنید فرم ما 10 فیلد داشته باشد؛ ما باید 10 فیلد را جداگانه برای کاربر خود تنظیم کنیم و در نهایت متد save را صدا بزنیم تا کاربر ساخته شده و در پایگاه داده ذخیره شود. به نظر شما چرا لاراول این کار را کرده است؟
پنل نویسندگان




