未在phalcon多模块上加载的模型

时间:2016-08-13 05:50:57

标签: php module phalcon

我试图用命名空间实现phalcon multi模块。通常它的工作。但模型没有从其位置加载(/ apps / models /)。如果我将所有模型文件粘贴到控制器目录中,那么它的工作原理。它应该从模型目录加载。我怎么能解决这个问题。

[前面模块]

$loader->registerNamespaces(
array(
'Multiple\Frontend\Controllers' => '../apps/frontend/controllers/',
'Multiple\Frontend\Models'      => '../apps/frontend/models/',
 ));

[博客模型]

namespace Multiple\Frontend\Controllers;
use Phalcon\Mvc\Model;
class Blogs extends Model{}    

我也尝试命名空间Multiple \ Frontend \ Models;"但没有成功。 得到如下错误:

Fatal error: Uncaught Error: Class 'Multiple\Frontend\Controllers\News' not found in C:\xampp\htdocs\pm\apps\frontend\controllers\IndexController.php:38 Stack trace: #0 [internal function]:

我有我的调度员:

public function registerServices(DiInterface $di)
{
    # Registering a dispatcher
    $di->set('dispatcher', function () {
        $dispatcher = new Dispatcher();
        $dispatcher->setDefaultNamespace("Multiple\Frontend\Controllers");
        return $dispatcher;
});

我认为错误:"错误:Class' Multiple \ Frontend \ Controllers \ Blogs'找不到"因为这个原因默认命名空间是frontend \ controller。怎么解决?请

1 个答案:

答案 0 :(得分:2)

您需要在模块之外加载模型。当调度程序将此模块命中时,registerNamespaces仅在此模块中命中。

实际上我认为在不同模块中使用模型时遇到问题。如果您发现此错误Multiple\Frontend\Controllers\News,则无法找到它,这意味着您没有正确的使用语句,而是在相同的命名空间中查找类,只需添加use Multiple\Frontend\Models\News即可。你甚至使用任何IDE吗?