ساختن شی از model در controller

پرسیده شده
فعالیت 1025 روز پیش
دیده شده 417 بار
0

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

فایل پیوست

Mehrzad Tajkarimi
Mehrzad Tajkarimi

17 تیر 00

1
حذف شده

سلام و احترام

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

اما میتونید برای مثال داخل کلاس پدر یه متد به اسم 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');
    }
}

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

فایل پیوست

امیر صالحی

توسط

امیر صالحی

17 تیر 00