2017-08-10 25 views
0

ルーティングページと実現に問題があります。 ページのルーティングが実現前である場合は、ページが機能し、実現が機能しません。同様に... 実現ルーティングがページルーティングの前にある場合、実現は機能し、ページは機能しません。表示エラー404ルーティングでのエラー - エラー404

マイルーティングページ:

Route::get('{page}/{subs?}', ['uses' => '[email protected]']) 
    ->where(['page' => '^((?!admin).)*$', 'subs' => '.*']); 

マイルーティングrealizarion:

Route::group(['middleware' => ['web']], function() { 
    Route::get('realizacje/{slug}', '[email protected]') 
     ->where('slug', '[\w\d\-\_]+'); 
}); 

私のコントローラをPagesController:

public function getPage($slug){ 
    $realizations = Realization::orderBy('id', 'desc')->get(); 

    $page = Page::findBySlug($slug); 
    if (!$page) 
    { 
     abort(404, 'Please go back to our <a href="'.url('').'">homepage</a>.'); 
    } 

    $this->data['title'] = $page->title; 

    $metatag = $page->extras; 
    $metatag = json_decode($metatag, true); 


    $this->data['page'] = $page->withFakes(); 
    return view('pages.templates.'.$page->template, $this->data) 
    ->with('metatag',$metatag) 
    ->with('realizations',$realizations); 
} 

public function getRealization($slug){ 

    $realization = Realization::where('slug', '=', $slug)->first(); 
    $realizations = Realization::orderBy('id', 'desc')->get(); 
    return view('pages.templates.'.$realization->template) 

    ->with('realizations',$realizations); 

} 
+0

私があなたに求めていることは不明です。達成したいことを説明してください。 –

+0

ルーティングが機能しません。サブページを表示するためのページをルーティングします。サブページの実現を表示するためのルーティングの実現。両方を実行すると、「サブページのページ」または「サブページの実現」では1つのルーティングのみが機能します。誰が最初にいるかによって決まる –

+0

ああ、2番目のルートを最初に置くとこれが修正されます –

答えて

1

まず最初に:私は知りませんLaravel 。私はSymfonyで開発します。

しかし、おそらくそれが役に立ちます。

問題はあなたのルートURIの定義で次のようになります。

Route::get('pages/{page}/{subs?}'... 
Route::get('realizacje/{slug}'... 

以上に試してみてください。

Route::get('{page}/{subs?}'... 

Route::get('realizacje/{slug}'... 

たぶん、ルータはこれら二つの動作と一致しなくなりますので、このようにあなたのページのURIを変更しようwhere()条件を変更します。

+0

実際のところ、「realizacje」は{page}パラメータとして解釈されるため、ルートは競合します。 – iArcadia

+0

@iArcadia正確に。 :) –