1
當試圖訪問另一個控制器中的函數時,出現__construct() must be an instance of App\Models\Page, none given
錯誤消息,我想知道如何解決這個問題...獲取__construct()必須是應用程序 Models Page的一個實例,沒有給出消息
其中函數是從稱爲控制器:
use App\Http\Controllers\Frontend\PagesController;
...
class ModulesController extends Controller {
public function filter(Request $request) {
$items = $this->loadFilteredItems($request->module_id, $request->filters);
$page = new PagesController();
$header = $page->loadElements($request->id, false);
return View::make(
'base.frontend.' . config('folder') . '.includes.filter',
compact('items', 'header'));
}
}
}
存儲所述功能控制器:
class PagesController extends Controller {
private $page;
public function __construct(Page $page) {
$this->page = $page;
}
private function loadElements($id) {
return 'something';
}
}
錯誤消息指出的問題到底是什麼。您需要傳遞「App \ Models \ Page」的實例。 '$ page = new PagesController();'改爲'$ page = new PagesController($ instanceOfModelPage);' –
但是我該如何製作實例? –
沒有與laravel一起工作。最簡單的方法'$ instanceOfModelPage = new App \ Models \ Page();'基於docs看起來像原始開發者默認覆蓋默認構造函數,默認情況下'Controller :: __ construct'不接受任何東西。看看它是如何在其他地方被召喚的。只需通過代碼庫 –