我正在尝试使用命名空间实现phalcon多模块。正常情况下,它是有效的。但模型不能从其位置(/apps/model/)加载。如果我将我所有的模型文件粘贴到控制器目录中,那么它就可以工作了。它应该从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{} 我还尝试了“命名空间多个\前端\模型;”,但没有成功。得到类似以下的错误:
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;
});我认为错误是:" error : Class 'Multiple\Frontend\Controllers\Blogs‘not found“,这是因为默认的命名空间是前端\控制器。如何解决?请
发布于 2016-08-13 21:13:03
我认为你需要在你的控制器中添加额外的一行,比如...
namespace Multiple\Frontend\Controllers;
use Phalcon\Mvc\Controller;
use Multiple\Frontend\Models\Blogs as Blogs; //** This line should Add **//
class IndexController extends Controller
{
public function indexAction()
{}
}发布于 2016-08-13 17:46:43
你需要在模块之外加载你的模型。只有当调度程序命中此模块时,才会命中此模块中的registerNamespaces。
实际上,我认为在不同的模块中使用模型是有问题的。如果你有这个错误,这不能被找到,这意味着你没有正确的Multiple\Frontend\Controllers\News语句,它在相同的名称空间中寻找类,只需添加use Multiple\Frontend\Models\News。你还在使用IDE吗?
https://stackoverflow.com/questions/38929691
复制相似问题