致命错误:未捕获错误:在动态变量命名空间中找不到类

问题描述 投票:1回答:1

我有这个主控制器:

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()'

如何修复错误?

php namespaces
1个回答
0
投票

你需要从字符串中删除()

$this->loadModel('IndexModel')->test();

在创建没有参数的新实例时,没有必要使用()。如果你确实想要它,或者你想传递一些参数,你需要在实例化后的变量之后添加它们:

new $path('someArgument');
© www.soinside.com 2019 - 2024. All rights reserved.