🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Mehrzad Tajkarimi
ساختن شی از model در controller
امیر صالحی حل شده توسط امیر صالحی

سلام 
میخوام زمانی که مثلا   CategoryController استفاده میکنم و این کلاس در واقع از کلاس پدرش به نام Controller ارث میبره بیاد داخل پدر به صورت داینامیک model Category رو اینجکت کنه 
به جهت دسترسی ساده به model Category از داخل CategoryController 
نمیخوام تو هر کنترلر یک شی از model بسازم و این وضیفه رو بسپرم به پدرش که Controller باشه

سلام و احترام

توی شئ گرایی کلاس پدر از کلاس فرزند خبری نداره، ینی اینکه نمیدونه کی کلاس پدر رو به ارث برده اما در کلاس فرزند میشه فهمید که این کلاس از چه کلاس ارث بری کرده.

اما میتونید برای مثال داخل کلاس پدر یه متد به اسم model تعریف کنید تا در کلاس فرزند در دسترس باشه و اگه مدلشو میخواد اون متد رو صدا بزنه و مدل رو دریافت کنه

در کلاس پدر 

  public function model($model_name)
    {
        $model_full_name = 'App\Models\' . ucfirst($model_name);
        if(class_exists($model_full_name))
            return new $model_full_name;
        return null;
    }

 

در کلاس فرزند هم میتونید به شکل زیر ازش استفاده کنید:

class Posts extends Controller
{
    protected $postModel;
    public function __construct()
    {
        $this->postModel = $this->model('post');
    }
}

کدی که قرار دادم کد پروژه ای است که تازه ضبطش تموم شده و به زودی ویدیوها و کد پروژه در دسترستون خواهد بود

بهترین پاسخ
امیر صالحی ۱۷ تیر ۱۴۰۰، ۱۳:۴۶