未找到Laravel 5路由对象

Gan*_*nly 5 php laravel laravel-routing laravel-5

我uuualy使用Laravel 4,现在我想学习Laravel 5

命名控制器路由有问题:

我有这样的路线:

Route::get('/', [
    'uses' => 'HomeController@viewHome', 
    'as' => 'home'
]);

Route::get('/events', [
        'uses' => 'EventController@viewEvent', 
        'as' => 'event'
    ]);
Run Code Online (Sandbox Code Playgroud)

当我作为'home'(localhost/laravel /)运行路线时,它的工作非常完美

但是当我将路线作为'event'(localhost/laravel/events)运行时:找不到对象! 在此输入图像描述

我已经确保通过交换它运行的viewEvent方法如下:

Route::get('/', [
    'uses' => 'EventController@viewEvent', 
    'as' => 'home'
]);

Route::get('/events', [
        'uses' => 'HomeController@viewHome', 
        'as' => 'event'
    ]);
Run Code Online (Sandbox Code Playgroud)

我可以运行viewEvent,但我无法运行viewHome

我的代码有什么问题吗?

========================已解决========================= ====

帮助@DamienPirzy并且我意识到当我禁用/ public /文件夹时我想我必须将.htaccess输出到主文件夹:)

谢谢所有快速响应:)问题解决了

kam*_*bar 6

将此 htaccess 放入公用文件夹。确保你有 apache mod 重写工作。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)


小智 2

我在routes.php中看到

Route::get('/events', [
        'uses' => 'EventController@viewEvent', 
        'as' => 'event'
    ]);
Run Code Online (Sandbox Code Playgroud)

但你跑

localhost/laravel/event  
Run Code Online (Sandbox Code Playgroud)

应该运行

localhost/laravel/events
Run Code Online (Sandbox Code Playgroud)