2017-09-22 27 views
0

動作しませんか?奇妙なことが起こる。 'blog/all'と 'blog/gallery'は最後のContentController @ blogArticleで終わります。しかし、 'blog/add'はうまく機能します。Laravel 5.5ルートの順序は、私はこれらのルートを持っている

どうすれば可能ですか?私は見つけたすべてのキャッシュをクリアしようとしました。どのようなアイデアが間違っているかもしれない?何かヒントありがとうございます。

: 最後のルートにコメントすると、すべて正常に機能します。

+0

結果はどのような結果ですか? –

+0

私はルートのリストを取得します。順序は正しい –

答えて

1

TL; DR:これは実際に質問に答えるかどうか分かりませんが、同様の問題に遭遇し、GitHubでlaravel/frameworkプロジェクトに投稿したとき、自分の質問 - 回答を投稿しようとしていました。 $ route:list --sortをチェックして、実際のルートリストを考慮の順に確認してください。

// Handle the public 
Route::resource('your-resource', YourResourceController::class, [ 
     'only' => [ 
      'index', 
      'show' 
     ] 
    ]) 
    ->middleware(['web']); 

// Put everything else behind a wall 
Route::resource('your-resource, YourResourceController::class, [ 
     'except' => [ 
      'index', 
      'show' 
     ] 
    ]) 
    ->middleware(['web', 'auth']); 

作成(/作成)は、表示(/ {your-resource})で終了します。 route:listは以下を示します。

これにより解釈順序が本当にあるということである「欠陥」、隠れ
your-resource 
your-resource 
your-resource/create 
your-resource/{your-resource} 

:原因ルートブロックの順序に

your-resource 
your-resource 
your-resource/{your-resource} 
your-resource/create 

を。それらを切り替えると、問題が解決されます。

// Put everything else behind a wall 
Route::resource('your-resource, YourResourceController::class, [ 
     'except' => [ 
      'index', 
      'show' 
     ] 
    ]) 
    ->middleware(['web', 'auth']); 

// Handle the public 
Route::resource('your-resource', YourResourceController::class, [ 
     'only' => [ 
      'index', 
      'show' 
     ] 
    ]) 
    ->middleware(['web']); 
+1

こんにちはジョシュ、「例外」を解決しました。ルートの順序:リストが正しい。ルートの順序を切り替えることは役に立ちませんでした。それはそれを悪化させるかもしれませんが、より良い:)ありがとう! –

0

私はlaravel resouceルーティングに従う必要があると思います。

あなたが1つのコントローラで作業している場合、あなたのルートでこの順序に従う必要があります。

インデックス、作成、保存、ショー、編集、更新、https://laravel.com/docs/5.5/controllersで計上

を破壊します。

このルートに一般laravelに

Route::get ('blog/{article}/edit', '[email protected]'); 
+0

助けてください。私はすべての組み合わせを試しましたが、私は最大2つのルートを稼働させることができます。いくつかの組み合わせでは、何も動作していません。 –

0

Route::get ('blog/add', '[email protected]'); 

を配置しようとするが、上から下

へのルートの一致を検索しますので、PLSのルートを、次の試してください。

Route::group(['middleware' => ['ForLoggedIn']], function() 
{ 
    //article actions 
    Route::get ('blog/gallery', '[email protected]'); 
    Route::get ('blog/import', '[email protected]'); 
    Route::get ('blog/all', '[email protected]'); 
    Route::get ('blog/add', '[email protected]`enter code here`icle'); 
    Route::get ('blog/{article}/edit', '[email protected]'); 
}); 
Route::get ('blog/{article}', '[email protected]'); 
+0

何もありません。ルートの順序を変更することで、私はそれらのうちの1つを動作させることができます。なぜこのようなことが起こるのか分かりません。 –

関連する問題