PDA

View Full Version : fillable در مدل ها



navid3d_69
چهارشنبه 22 مرداد 1393, 15:02 عصر
سلام در مدل این کد برای چی هست ؟



protected $fillable = array('first_name', 'last_name', 'email');


و استفادش برای چی هست توی داکیمونتش زیاد منظورش رو نفهمیدم

2undercover
چهارشنبه 22 مرداد 1393, 15:33 عصر
اون ها مشخص کننده ی این هستند که این مقادیر می تونند با استفاده از قابلیت Mass-Assignment پر بشوند:

فرضا یک کاربر این خصوصیات رو داره name و password و banned و comments_count. خوب برای ایجاد یک کاربر جدید با استفاده از Eloquent در Controller می تونید این کارو انجام بدید:


$user = new User(Input::all());


اینطوری تمامی مقادیری که به صفحه ارسال شدند به مدل ارسال می شوند برای ساخت یک کاربر جدید. اما ممکنه یک نفر بیاد و مقدار banned رو هم به صفحه ارسال بکنه ولی اگه با استفاده از fillable توی مدل مشخص بکنیم که فقط name و password می تونند به مدل ارسال بشوند برای ایجاد یک کاربر دیگه حتی اگر یک نفر مقدار banned یا comments_count رو هم به صفحه بفرسته اون ها به مدل ارسال می شوند ولی مدل فقط name و password رو پر می کنه و به اون دو تای دیگه کاری نداره.

navid3d_69
چهارشنبه 22 مرداد 1393, 15:50 عصر
ممنون این در صورتی هست که فیلد ها اعتبار سنجی نشن و خودمون تعیین نکینم کدوما باشن

guarded بر عکس اون هست درسته ؟

2undercover
چهارشنبه 22 مرداد 1393, 17:34 عصر
ممنون این در صورتی هست که فیلد ها اعتبار سنجی نشن و خودمون تعیین نکینم کدوما باشن

guarded بر عکس اون هست درسته ؟

بله. دقیقا بر عکس همدیگر هستند. fillable اون هایی که اجازه پر شدن از طریق Mass-Assigment دارند و guarded اون هایی که اجازه ندارند.