سلام و درود
اگر در یک کنترلر ، شی ساخته بشه از یک کنترلر دیگه ، چه اشکالاتی داره ؟
مثلا : اینجا من از HomeController شی ساختم در کنترلر ContactController
public function delete_contact()
{
global $request ;
$id = $request->get_route_param('id');
$this->contact_model->delete(['id'=>$id]);
$data = (new HomeController())->get_contact();
view('index', $data);
}
اصول سالید رو نقض میکنه یا میتونه درست باشه ؟
درود
خیلی بهتره که این وابستگی ها از طریق construct تزریق بشه، داخل construct کنترلرتون ازش یه new بگیرید.
یه نکته هم بگم اینکه از دارید contact رو میگیرید میتونید از مدل Contactتون استفاده کنید به جای استفاده از کنترلر.
داخل مدلتون یه متد بسازید به اسم getContracts و queryتون رو داخلش قرار بدید
سلام.
بهتره به این شکل نوشته بشه:
public function delete_contact(HomeController $homeController)
{
global $request ;
$id = $request->get_route_param('id');
$this->contact_model->delete(['id'=>$id]);
$data = $homeController->get_contact();
view('index', $data);
}
درضمن نکته ی امیرصالحی در مورد استفاده از مدل contact رو هم توجه کنید. چون کنترلر برای کارهای لایه ی دیتابیس نیست و فقط یک هندلر و گرداننده هست.