gpt4 book ai didi

php - Phalcon php 命名空间不能使用

转载 作者:行者123 更新时间:2023-12-04 16:55:44 25 4
gpt4 key购买 nike

所以我有用户模型命名空间:

namespace App\Models;

use Phalcon\Mvc\Model;

class Users extends Model
{

和 Controller :
use \Phalcon\Mvc\Controller;
use \App\Models\Users;

class LoginController extends Controller
{
...
public function postLoginAction() {
$user = Users::findFirst([ ...
}
...

总是报错 fatal error : Uncaught Error :在 中找不到“App\Models\Users”类无论如何,尝试了所有变体,不知道有什么问题。甚至我的 IDEA 也能正确解析这个类。

如果我删除我的命名空间,一切正常。

更新 :

因此,如果您使用 phalcon 开发工具生成项目,然后开始生成其他内容(模型、 Controller ),您将需要为模型提供命名空间,但它不起作用,您还需要像这样更新 app/config/loader.php:
<?php

$loader = new \Phalcon\Loader();

/**
* We're a registering a set of directories taken from the configuration file
*/
$loader->registerDirs(
[
$config->application->controllersDir,
$config->application->modelsDir
]
)->register();

$loader->registerNamespaces(
[
'App\Controller' => $config->application->controllersDir,
'App\Model' => $config->application->modelsDir,
]
)->register();

换句话说,注册命名空间,我不知道为什么这没有在文档中明确说明,但它接缝这个框架有很多这样的“黑洞”,或者我不了解这个框架的基础知识(来自 codeigniter 和 Laravel 背景)。

最佳答案

在你的引导文件中试试这个:

// registers namespaces
$loader = new Loader();
$loader->registerNamespaces([
'App\Controllers' => APP_PATH . '/controllers/',
'App\Models' => APP_PATH . '/models/'
]);
$loader->register();

顺便说一句, APP_PATH可以是您的应用程序目录的常量,或者您想要/需要的任何内容。

关于php - Phalcon php 命名空间不能使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47962400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com