برای اینکه از روت مدل بایندیگ استفاده کنم و تکرار ویو نداشته باشم چه راهی وجود داره؟
فرض کنید من دو مدل دارم: article - course
هر دو روت هایی با نام create و edit و .... دارند
توی روت ادیت اگر متغیری که به ویو پاس داده میشه هم اسم با مدل نباشه لاراول ارور میده.
آیا راهی هست که اسم متغیر متفاوت باشه اسم مدل؟
public function edit(Article $article)
{
return view('Admin.article.edit', compact('article'));
}
چون ویو رو میخوام یکی کنم باید متغیری که در ویو دریافت میکنم یک نام ثابت داشته باشه. حالا اگه متغیر ارتیکل رو به کورس تغییر بدم لاراول ارتیکل ها رو بر نمی گردونه و اگه برعکس کنم کورس ها رو بر نمی گردونه.
اشما که میگید ارور میده به این دلیل هست که اسم متغییر در تابع edit باید همنام با اسم متغییر در route باشه.
یعنی اگر اسم متغییر در route شما abc باشه باید اسم متغییر استفاده شده در edit هم abc باشه.
خب راهی هست که هم از resource استفاده کنیم برای اینکه روت ها رو تعریف کنیم و هم این مشکل رو حل کنیم؟
حتما باید برای هر مدل ویو مجزا تعریف کنم؟
@drcode.ir
نه می تونی view مشترک داشته باشی ولی خب اگر بخوای از resource استفاده کنی باید model و controller ,و route مجزا داشته باشی و فقط از view مشترک استفاده کنی البته این روش هم فقط جاهایی توسیه میشه استفاده کنی که در view پیچیدگی های زیادی داری ولی data که میفرستی ساختار یکی داره. یه مثال می زنم :
اسم متغیر رو هر چی میخواین میتونید بذارید فرقی نداره
منتهی حتما توی روت و ویو و کنترلر همه جا متغیر یک نام باشه
@alirezasafdari
خب مشکل اینه که وقتی از ریسور استفاده میکنیم به صورت پیشفرض یه متغیر هم اسم با مدل توی روت قرار میدیم و نمیشه متغیرهایی که اونجا تعریف میکنیم یکی باشه. چون روت هاش باهم قاطی میشه.
پس در نتیجه توی کنترلر های متعلق به مدل های مختلف هم باید نام متغیرها متفاوت باشه و در نهایت اینکه نمیشه ویو مشترک داشته باشند. حتی اگه تمام جزیئات ویوها یکی باشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟