laravel Autoloading

本文介绍了使用Laravel框架时遇到的问题:控制器类找不到。通过调整composer.json中的autoload配置并运行dump-autoload命令解决了问题。文章详细记录了解决过程。

laravel被说成2013最流行框架,还有用过。打算用laravel做一个小项目,按照之前的习惯,习惯把controller按照功能划分多个目录

比如:

controllers:
     admin:
           DashboardController.php
     web:
           HomeController.php

laravel的route有各种规则,group应用同一组路由,配置如下

Route::group(array('prefix' => 'admin', 'namespace' => 'App\Controllers\Admin'), function()
{
    Route::get('/home', 'HomeController@index');
})
admin下的DashboardController.php
<?php
namespace App\Controllers\Admin;

class DashboardController extends \BaseController{

    public function index(){
        echo "test";
        exit;
    }
}

运行,报错 Class 'App\Controllers\Admin\DashboardController' not found

路径和命名都没问题,只有看手册、google、stackoverflow找问题,老半天没结果,网上怎么说的都有;简单看下Router.php代码,也没发现问题。

后来看了http://stackoverflow.com/questions/18132220/laravel-4-package-or-modules,需要dump-autoload,试了下,果然可以。

再回头看下laravel代码,会先加载autoload_classmap.php文件,然后按照该文件找类。现在记录下完整的过程

编辑composer.json文件,添加

"autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/controllers/admin",
然后运行:
composer dump-autoload
如果composer没有安装,参考https://getcomposer.org/doc/01-basic-usage.md,安装下
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer

就可以了

转载于:https://my.oschina.net/lewisliang/blog/195194

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值