راکت
حل شده

کار نکردن model در controller

6 پاسخ

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

public function edit(ProductCategory $productCategory)
    {
        return view('Admin.products-categories.edit' , compact('productCategory'));
    }
ثبت پرسش جدید

پاسخ‌ها

6
محمدرضا عطوان
محمدرضا عطوان
@mratwan

تخصص: Full-Stack Developer & AI Lover

بهترین پاسخ

دوست عزیز @drcode.ir
ممنونم از شما به خاطر پاسختون
من بعد از پاسخ شما چندین بار موردی رو که فرمودید بررسی کردم اما در هیچ کدوم از حالت ها به جواب نرسیدم.
نکته ای که شما فرمودید خیلی مفید بود ولی من در آخر متوجه شدم که مشکل اصلی به خاطر موضوع دیگه ای هم هست.
در واقع لاراول اگر هر کلمه ای برای route قرار میدادم که جمع بود برای تابع edit و update نتیجه نمی داد.
برای مثال من categories و خیلی کلمات دیگه رو هم تست کردم اما جواب نداد اما وقتی مفرد کلمه رو قرار دادم مثلا category خیلی سریع جواب رو برگردوند.

developer
developer
@developer

تخصص: برنامه نویس

با آیدی فراخوانی میکنید؟ یا اسلاگ؟ چک کنید اگه با اسلاگه توی مدل بذاریدش

تجربه نشون داده اینجور مواقع یک سوتی خیلی ساده میدیم یکبار از اول چک کنید ببنیند همه جا اوکی باشه

محمدرضا عطوان
محمدرضا عطوان
@mratwan

تخصص: Full-Stack Developer & AI Lover

با id فراخوانی میشه
جالبه که برای خود محصولات مشکلی نداره ولی برای دسته بندی هاشون اینطور شده!

شاید پاسخ شما همین‌جا باشد

محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

@mratwan
Route که داره اشاره می کنه به این function رو قرار بدید اینجا.

محمدرضا عطوان
محمدرضا عطوان
@mratwan

تخصص: Full-Stack Developer & AI Lover

@drcode.ir

$this->resource('products-cats', 'ProductCategoryController');
محمد صادقیان
محمد صادقیان
@drcode.ir

تخصص: برنامه نویس وب - فریم ورک Laravel

@mratwan عزیز،
شما توی Controller خودتون دارید از متغیر $productCategory دارید برای دریافت این رکورد استفاده می کنید در حالی که در Route شما این متغیر با اسم products-cats داره ارسال میشه.
شما باید اسم متغیرتون رو توی Controller به شکل زیر تعریف کنید:

public function edit(ProductCategory $productsCats)
{
  return $productsCats;
}

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

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