php找不到控制器里面的方法,php – 在Laravel 4中找不到控制器类

如果你没有从原始位置移动控制器目录(这是«project_root»/ app / controllers /,你必须保证:

> Laravel的自动加载具有控制器目录.导航到«project_root»/app/start/global.php.你需要这样的东西:

(...)

ClassLoader::addDirectories(array(

app_path().'/commands',

app_path().'/controllers',

app_path().'/models',

app_path().'/database/seeds',

));

(...)

注意这行app_path().’/ controllers’.它必须存在.

>此外,打开您的composer.json文件并验证是否存在以下行:

(...)

"autoload": {

"classmap": [

"app/commands",

"app/controllers",

"app/database/migrations",

"app/database/seeds",

"app/tests/TestCase.php"

],

(...)

确保您拥有app / controllers行

如果您有这些行并且仍然收到相同的消息,请转到项目根目录并从命令行编写器dumpautoload -o运行以下命令.

Laravel适用于Composer,它是PHP的依赖管理工具.它还为所有项目类准备自动加载文件(see composer docs).当您运行composer dumpautoload命令时,它将在«project_root»/ vendor / composer中创建一些文件.

确保您可以在文件«project_root»/vendor/composer/autoload_classmap.php中找到类AdminCMSController.你应该看到这样的东西:

'AdminCMSController' => $baseDir . '/app/controllers/AdminCMSController.php',

如果更改了控制器目录的默认位置,则必须执行以下任一步骤.但是,由于您没有在类中定义命名空间,因此这似乎不是您的问题所在:

>使用PSR-0进行自动加载类.想象一下,您有以下文件夹结构:

/app

/commands

/config

/database

/Acme

/controllers

你必须在composer.json中指定Acme文件夹,如下所示:

"autoload": {

"classmap": [

"app/commands",

"app/database/migrations",

"app/database/seeds",

"app/tests/TestCase.php"

],

"psr-0": {

"Acme": "app/"

}

},

在此之后,您需要使用命令composer dumpautoload更新composer自动加载文件.

>如果您不想使用PSR-0进行自动加载,则需要更改路径文件

Route::controller('cms','AdminCMSController');

对此:

Route::controller('cms','Acme\controllers\AdminCMSController');

如果你使用PSR-0,你需要命名你的类,如下所示:

class AdminCMSController extends BaseController {

(...)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值