【问题标题】:NotFoundHttpException for Controller route in Laravel 4Laravel 4中控制器路由的NotFoundHttpException
【发布时间】:2013-06-11 11:03:23
【问题描述】:

我正在尝试在 Laravel 4 中开始使用控制器,但遇到了一些麻烦。这是基本的运行:

我在文件 FansController.php 中名为 FansController 的控制器文件夹中有一个控制器:

<php

class FansController extends BaseController {

        public $restful = true

        public function getindex() {
        return View::make('fans.landing');
    }
}

在我的视图文件夹中,我有一个名为“fans”的文件夹,它控制着一个视图文件“landing.blade.php”。它包含简单的html:&lt;h1&gt;hello&lt;/h1&gt;

在我的 routes.php 文件中,我有一个调用控制器的路由。这是代码:

Route::get('landing', array('uses' => 'FansController@index'));

当我访问网址时:public/fans/landing

我收到“NotFoundHttpException”;

您对可能出现的问题有任何想法吗?感谢您的帮助。

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    首先你需要指定你运行的 Laravel 版本。

    如果你运行的是 Laravel 4,那么:

    // routes.php
    Route::get('/', array('uses' => 'GuestController@getIndex'));
    
    // GuestController.php
    class GuestController extends BaseController {
        public function getIndex() {
             return 'Hello world.';
        }
    }
    

    然后在 CLI 上运行 $ composer dump-autoload -ophp composer.phar dump-autoload -o(如果您的作曲家是本地安装的)

    然而在 laravel 3 中

    // routes.php
    Route::get('/', array('uses' => 'GuestController@index'));
    
    // GuestController.php
    class GuestController extends BaseController {
        public $restful = true;
        public function get_index() {
             return 'Hello world.';
        }
    }
    

    【讨论】:

    • 我正在跑步 4。我会试试这个。
    • 好的,让我知道结果
    • 好吧,还是不行,但是另外,我不想路由去'/',我想让它去我指定的视图,登陆。你能给出一个适用的解决方案吗?
    • 我还能用吗:return View::make('fans.landing'); ?
    • 是的,你可以。如果您在 > ./app/views/fans/landing.blade.php 有相应的文件
    【解决方案2】:

    可能您需要将方法名称更改为索引:

    class FansController extends BaseController {
    
        public $restful = true
    
        public function index() {
            return View::make('fans.landing');
        }
    
    }
    

    【讨论】:

    • 但这不是“$restful”行的用途吗?我认为 $restful 告诉控制器在路由中调用它时响应“get”字符串。
    • 这也没有解决问题。此外,去公共/登陆,它说 FansController 不存在。但它很明显......
    • restful 现在在 L4 中是默认的,所以 index() 是 restful 并且我一直使用它,所以我很确定它是正确的。关于 FansController 不存在,它可能无法自动加载,请检查您的文件 vendor/composer/autoload_classmap.php,它必须存在,否则 Laravel 将找不到它。
    • 它不是......但我正在使用的另一个控制器 AccountController.php 也不是,它工作得很好。文档中没有说我需要向该文件添加新控制器。
    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2016-12-04
    • 2014-05-09
    相关资源
    最近更新 更多