模型未加载到 phalcon 多模块上
models not loading on phalcon multi module
我正在尝试使用命名空间实现 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{}
我也尝试 "namespace 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;
});
我认为错误:"Error: Class 'Multiple\Frontend\Controllers\Blogs' not found" 因为默认命名空间是 frontend\controller。如何解决?请
您显然需要在模块之外加载模型。 registerNamespaces 仅在调度程序命中此模块时才会命中此模块。
实际上我认为您在不同模块中使用模型时遇到问题。如果你有这个错误 Multiple\Frontend\Controllers\News
找不到它意味着你没有正确的使用语句并且它正在寻找相同名称空间中的 class,只需添加 use Multiple\Frontend\Models\News
。你甚至使用任何 IDE ?
我认为您需要在控制器中添加一行,例如...
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()
{}
}
我正在尝试使用命名空间实现 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{}
我也尝试 "namespace 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;
});
我认为错误:"Error: Class 'Multiple\Frontend\Controllers\Blogs' not found" 因为默认命名空间是 frontend\controller。如何解决?请
您显然需要在模块之外加载模型。 registerNamespaces 仅在调度程序命中此模块时才会命中此模块。
实际上我认为您在不同模块中使用模型时遇到问题。如果你有这个错误 Multiple\Frontend\Controllers\News
找不到它意味着你没有正确的使用语句并且它正在寻找相同名称空间中的 class,只需添加 use Multiple\Frontend\Models\News
。你甚至使用任何 IDE ?
我认为您需要在控制器中添加一行,例如...
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()
{}
}