【问题标题】:Composer dump-autoload in laravel seems not workinglaravel 中的 Composer dump-autoload 似乎不起作用
【发布时间】:2015-03-27 10:59:57
【问题描述】:

我尝试自动加载我的新课程,但它不起作用。我收到一条错误消息,说我的类控制器不存在。我在 ubuntu 环境中工作。使用 laravel 4.2

Composer.json

    "psr-0": {
        "Controllers": "app/",
        "Stuffs": "app/"
    }

app/Controllers/UserController.php

<?php

namespace Controllers;

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;

class UserController extends BaseController
{
    public function index()
    {
        $stuffs = $this->stuffs->findAllForUser($this->user, 12);

        $this->view('user.profile', compact('stuffs'));
    }
}

app/routes.php

Route::get('user', [ 'as' => 'user.index', 'uses' => 'UserController@index' ]);

我尝试这样做来自动加载这些类: composer dump-autoload -o 甚至有 sudo 许可,但无法正常工作。我错过了什么吗?谢谢。

【问题讨论】:

    标签: ubuntu laravel composer-php


    【解决方案1】:

    您必须在路由中使用完全限定名称引用控制器:

    Route::get('user', [ 'as' => 'user.index', 'uses' => 'Controllers\UserController@index' ]);
    

    如果你有很多,你也可以使用route group 来定义命名空间:

    Route::group(array('namespace' => 'Controllers'), function(){
        Route::get('user', [ 'as' => 'user.index', 'uses' => 'UserController@index' ]);
    });
    

    【讨论】:

    • 有道理。谢谢,我忘了把它包含在路由组中。它现在正在工作!
    猜你喜欢
    • 2017-03-05
    • 2018-06-06
    • 2016-01-23
    • 2013-12-14
    • 2014-10-22
    • 1970-01-01
    • 2013-06-15
    • 2016-09-11
    • 2014-03-26
    相关资源
    最近更新 更多