2017-05-23 2 views
0

私は自分のルートにいくつかの異なるURLが付いているという問題があり、differentsメソッドは1つの方法を使用しているようです。Laravel 5.4異なる方法を指しているが、応答が同じページを表示する同じルートのページ

ルート/ウェブPHP

Route::group(['middleware' => ['role:utilisateur,usage']], function() 
{ 
    Route::group(['prefix' => 'qcm'], function() 
    { 
     Route::get('/', '[email protected]'); 
     Route::get('{id?}', '[email protected]'); 
     Route::post('answer', '[email protected]'); 
     Route::get('result', '[email protected]'); 
     Route::get('get-question', '[email protected]'); 
    }); 
} 

ModuleController.php

class ModuleController extends Controller 
{ 

    public function index() 
    { 
    return View::make('qcm.index') 
    } 


    public function qcm($id) 
    { 
     return View::make('qcm.qcm'); 
    } 

    public function getQuestion() 
    { 
    return response()->json(['question' => 'test?']); 
    } 

    public function putAnswer(Request $request) 
    { 
    return response()->json(["result" => "next"], 200); 
    } 


    public function getResult() 
    { 
    return View::make('qcm.result'); 
    } 
} 

私はtest.com/qcm/resultまたはtest.com/qcm/get-question呼び出すと代わりにtest.com/qcm/{id}を呼び出してそのビューを返し、なぜphp artisan route:listがルートが適切なメソッドを指していることを示しているかわかりません。

誰かが私のコードがそのような結果を作り出す理由を知っていますか?私は何かを逃したか?

ご協力いただきありがとうございます。

+0

。 – MrRP

+0

私はちょうど試しましたが、残念ながら、それは動作しません –

答えて

0

Route::get('{id?}', '[email protected]');をルートリストの末尾に置きます。 例えば:

Route::group(['middleware' => ['role:utilisateur,usage']], function() 
{ 
    Route::group(['prefix' => 'qcm'], function() 
    { 
     Route::get('/', '[email protected]'); 
     Route::post('answer', '[email protected]'); 
     Route::get('result', '[email protected]'); 
     Route::get('get-question', '[email protected]'); 
     Route::get('{id?}', '[email protected]'); 
    }); 
} 
+0

それは動作します、ありがとう!しかし、なぜそれがそのように働いたのか説明できますか? (私はあなたが答えるとすぐにあなたの答えに印をつけます) –

+0

Laravelはルート順を注文するので、それを一番上に置くと、リクエストは一致し、残りのリクエストはチェックされません。 –

0

あなた

Route::get('result', '[email protected]');

コール​​。 ModuleControllerを呼び出すべきではありませんか?このよう

:それは何のために一致しているため

​​は、グループの最後に `{?ID}`線を移動
関連する問題