我有这个主控制器:
namespace App\Core;
/**
* Controller class
*/
class Controller
{
/** @var View View The view object */
public $View;
public $templates;
/**
* Construct the (base) controller. This happens when a real controller is constructed, like in
*/
public function __construct()
{
}
public function loadModel($name) {
$path = '\\App\\Front\\Model\\'.$name; // Not Work
//$this->model = new \App\Front\Model\IndexModel(); Work
$this->model = new $path;
return $this->model;
}
}
在IndexController中我有:
namespace App\Front\Controller;
use App\Front\Model\IndexModel;
class IndexController extends \App\Core\Controller {
public function index(){
$this->loadModel('IndexModel()')->test();
}
}
现在我在行动中看到错误:
致命错误:未捕获错误:在/Applications/MAMP/htdocs/mvc/application/Core/Controller.php:64中找不到类'\ App \ Front \ Model \ IndexModel()'
如何修复错误?
你需要从字符串中删除()
:
$this->loadModel('IndexModel')->test();
在创建没有参数的新实例时,没有必要使用()
。如果你确实想要它,或者你想传递一些参数,你需要在实例化后的变量之后添加它们:
new $path('someArgument');