【发布时间】:2016-08-13 05:50:57
【问题描述】:
我正在尝试使用命名空间实现 phalcon 多模块。通常它的工作。但模型未从其位置(/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;
});
我认为错误:“错误:找不到类'Multiple\Frontend\Controllers\Blogs'”,因为默认命名空间是前端\控制器。如何解决?请
【问题讨论】:
-
为什么你的博客模型被命名为控制器?您的错误中的 News 是怎么回事,它在您的代码示例中却没有?
-
我应该在博客模型中使用什么命名空间?是“命名空间 Multiple\Frontend\Models”吗?如果是,则显示致命错误消息模型位于模型目录中,这就是此错误的原因。如果我将新闻模型复制到控制器目录它工作完美
-
我想从模型目录中调用新闻模型。
-
您是否忘记将
news模型中的命名空间更改为Multiple\Frontend\Models? -
你能否确认你的每一个模型都有命名空间
Multiple\Frontend\Models。请您三重检查一下吗?