مهدی سمیعیان
6 سال پیش توسط مهدی سمیعیان مطرح شد
5 پاسخ

تغییر نام متغیر در route mode binding

برای اینکه از روت مدل بایندیگ استفاده کنم و تکرار ویو نداشته باشم چه راهی وجود داره؟
فرض کنید من دو مدل دارم: article - course
هر دو روت هایی با نام create و edit و .... دارند
توی روت ادیت اگر متغیری که به ویو پاس داده میشه هم اسم با مدل نباشه لاراول ارور میده.
آیا راهی هست که اسم متغیر متفاوت باشه اسم مدل؟

 public function edit(Article $article)
    {

        return view('Admin.article.edit', compact('article'));
    }

چون ویو رو میخوام یکی کنم باید متغیری که در ویو دریافت میکنم یک نام ثابت داشته باشه. حالا اگه متغیر ارتیکل رو به کورس تغییر بدم لاراول ارتیکل ها رو بر نمی گردونه و اگه برعکس کنم کورس ها رو بر نمی گردونه.


ثبت پرسش جدید
محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 6 سال پیش مطرح شد
1

اشما که میگید ارور میده به این دلیل هست که اسم متغییر در تابع edit باید همنام با اسم متغییر در route باشه.
یعنی اگر اسم متغییر در route شما abc باشه باید اسم متغییر استفاده شده در edit هم abc باشه.


مهدی سمیعیان
تخصص : برنامه نویس وب/اندروید
@mahdidev 6 سال پیش مطرح شد
0

خب راهی هست که هم از resource استفاده کنیم برای اینکه روت ها رو تعریف کنیم و هم این مشکل رو حل کنیم؟
حتما باید برای هر مدل ویو مجزا تعریف کنم؟
@drcode.ir


محمد صادقیان
تخصص : برنامه نویس وب - فریم ورک Lara...
@drcode.ir 6 سال پیش مطرح شد
1

نه می تونی view مشترک داشته باشی ولی خب اگر بخوای از resource استفاده کنی باید model و controller ,و route مجزا داشته باشی و فقط از view مشترک استفاده کنی البته این روش هم فقط جاهایی توسیه میشه استفاده کنی که در view پیچیدگی های زیادی داری ولی data که میفرستی ساختار یکی داره. یه مثال می زنم :

  • لیست تراکنش های کلی
  • لیست تراکنش های هر کاربر
    این 2تا view یکسان هستند و دیتای یکسانی هم دارند پس می تونی از view کیسان استفاده کنی ولی برای تمیز و خوانا شدن کدهات بهتره از controller جدا استفاده کنی.

developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
0

اسم متغیر رو هر چی میخواین میتونید بذارید فرقی نداره
منتهی حتما توی روت و ویو و کنترلر همه جا متغیر یک نام باشه


مهدی سمیعیان
تخصص : برنامه نویس وب/اندروید
@mahdidev 6 سال پیش مطرح شد
0

@alirezasafdari
خب مشکل اینه که وقتی از ریسور استفاده میکنیم به صورت پیشفرض یه متغیر هم اسم با مدل توی روت قرار میدیم و نمیشه متغیرهایی که اونجا تعریف میکنیم یکی باشه. چون روت هاش باهم قاطی میشه.
پس در نتیجه توی کنترلر های متعلق به مدل های مختلف هم باید نام متغیرها متفاوت باشه و در نهایت اینکه نمیشه ویو مشترک داشته باشند. حتی اگه تمام جزیئات ویوها یکی باشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام