自定义路由不在Laravel中解析

时间:2016-03-01 22:47:02

标签: php laravel laravel-5 laravel-5.2 laravel-routing

我有一个Laravel 5.2实例,它利用仪表板,案例,家庭,登录/注销和用户(运行良好)的所有典型的开箱即用路线。我现在需要创建一个带有步骤的向导(步骤1,步骤2,步骤3等),我需要访问会话。我将它们分配给组中间件。

Route::group(['middleware' => 'web'], function () {
    Route::get('/', function () {
        // Uses Web middleware
    });
    Route::get('wizard/step1', [
        'as' => 'wizard/step1', 'uses' => 'Wizard\WizardController@getStep1']);
    Route::get('wizard/step2', [
        'as' => 'wizard/step2', 'uses' => 'Wizard\WizardController@getStep2']);
});

但是,当我转到指定的路线时,我收到404错误。 WizardController看起来像:

<?php

namespace App\Http\Controllers\Wizard;

use App\Http\Controllers\Controller;
use App\Http\Requests;

class WizardController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //$this->middleware('guest');
    }

    /**
     * Create the specified resource.
     */
    public function getStep1()
    {
        return view('wizard.step1');
    }
}

定义的视图是resources/views/wizard/step1.php.理想情况下,我想重构它,以便向导是一个单独的组。但是,目前似乎没有什么能像我定义自定义路由一样。

2 个答案:

答案 0 :(得分:1)

缓存路由时会发生这种情况。除非清除路由缓存,否则永远不会识别您添加的新路由条目。

您可以使用php artisan route:clear删除缓存的路由。

由于您将在dev env中频繁更改路由,在开发环境中不执行路由缓存总是更好。

您可以通过仅在Git中运行artisan route:cache作为部署后挂钩来实现,或者只将其作为Forge部署过程的一部分运行。因此,每次在服务器中部署代码时,都会自动缓存路由。

答案 1 :(得分:0)

我通过运行命令解决了我的问题:

<强> php artisan route:clear

这可让Artisan删除您的路线缓存,您可以确保路线同步。

感谢您的帮助!