由于我的路线复杂,我创建了一条动态路线,我的 routes.php 是 unamaneagle。
下面我使用 $controller = new $controller; 创建我的控制器。然后 $controller->$action(); 初始化的控制器扩展了 BaseController,它有一个使用 $this->layout 设置的布局。问题是,当我手动创建此控制器时,似乎无法访问 BaseController 上的布局对象以在我的视图中获取数据。
这条线
$this->layout->dataGroup = $data;
给我
Attempt to assign property of non-object
路由.php
Route::get('/{dcontroller}/view/{id}', function($dcontroller, $id) {
$controller = ucfirst($dcontroller).'Controller';
$action = 'getView';
$controller = new $controller;
return $controller->$action($id);
});
基本控制器.php
class BaseController extends Controller {
protected $layout = 'layouts.master';
protected function layoutFnc($path, $data) {
// ********************* THIS FAILS!! *********************
$this->layout->dataGroup = $data;
// *********************
$this->layout->content = View::make($path, $data);
}
}
MyController.php
class MyController extends BaseController {
public function getView($id) {
$this->layoutFnc('layouts/test', aray('test', 'test2'));
}
}