代码之家  ›  专栏  ›  技术社区  ›  Karl Hill

自定义路由无法在Laravel中解析

  •  1
  • Karl Hill  · 技术社区  · 9 年前

    我有一个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如下所示。

    namespace App\Http\Controllers\Wizard;
    
    use App\Http\Controllers\Controller;
    use App\Http\Requests;
    
    class WizardController extends Controller
    {
        public function __construct()
        {
            //$this->middleware('guest');
        }
    
        public function getStep1()
        {
            return view('wizard.step1');
        }
    }
    

    定义的视图为 resources/views/wizard/step1.php 理想情况下,我想重构它,使向导成为一个单独的组。然而,目前我定义自定义路由的方式似乎没有任何效果。

    2 回复  |  直到 4 年前
        1
  •  1
  •   brainless    9 年前

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

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

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

    你只需要跑步就能做到 artisan route:cache 作为Git中的部署后挂钩,或者只是将其作为Forge部署过程的一部分运行。因此,每次在服务器中部署代码时,都会自动缓存路由。

        2
  •  0
  •   Karl Hill    9 年前

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

    php artisan route:clear

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

    谢谢你的帮助!

    推荐文章