小编swa*_*ady的帖子

Laravel 4无法从命名空间控制器中找到BaseController

我正在尝试构建我的Laravel 4站点,以便(1)主要应用程序组的组件(控制器/视图/等)耦合在一起,以及(2)Laravel在我的Web服务器的文档根目录之外的支持代码.默认的laravel主页加载正常,但我无法让命名空间控制器正确路由.这是相关的文件结构:

/ [Project Root]
     /laravel [full laravel install here]
          composer.json
          /app
               /controllers
                    BaseController.php
     /dev
          /htdocs
               index.php
               /app
                    /PageTypes
                         /Home
                              /controllers
                                   HomeController.php
                              /views
                                   HomeView.blade.php
Run Code Online (Sandbox Code Playgroud)

默认的laravel登陆页面正在加载正常.但是当我尝试使用自己的命名空间设置控制器时,我不断收到错误.

这是HomeController.php:

namespace PageTypes;

use Home\controllers;

class HomeController extends BaseController {

    public function showWelcome()
    {
        return View::make('hello');
    }

}
Run Code Online (Sandbox Code Playgroud)

这是routes.php:

<?php

Route::get('/', function()
{
    return View::make('hello');
});

Route::get('/home', 'PageTypes\Home\controllers\HomeController@showWelcome' );
Run Code Online (Sandbox Code Playgroud)

此设置产生错误:"Symfony\Component\Debug\Exception\FatalErrorException Class'PageTypes\BaseController'not found"好吧,laravel至少找到HomeController.php.

很多其他SO响应告诉我尝试将BaseController更改为\ BaseController.进行一次更改并使其他所有内容保持不变会产生错误"ReflectionException:Class PageTypes\Home\controllers\HomeController不存在." 什么?...>.<

我不了解命名空间,psr-0和laravel路由的交叉点,任何帮助都会非常感激.

后续问题:(1)我可以采取哪些步骤进行调试?除了抛出的异常错误之外,NGINX的日志并没有真正告诉我任何其他内容.(2)有没有人在github上遇到类似的laravel种子?我很乐意参考.

以下是我的配置设置:

// index.php 
...
require __DIR__.'/../../laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/../../laravel/bootstrap/start.php';
...

// bootstrap/autoload.php …
Run Code Online (Sandbox Code Playgroud)

psr-0 laravel laravel-4

3
推荐指数
1
解决办法
6444
查看次数

标签 统计

laravel ×1

laravel-4 ×1

psr-0 ×1