2017-07-21 9 views
0

ビューのルートを変更して問題が発生しています。私はルートErrorException必要なパラメータがありませんlaravel

/会社/ ID /名前を表示する代わりに/会社/ IDの希望:コントローラで

Route::get('/company/{id}/{name}', '[email protected]')->name('company.detail'); 

showメソッド:

public function showCompany($id){ 
     $company = Company::find($id); 
     return view('company.show')->with('company', $company); 
    } 

とビュー$会社ではからです検索コントローラ - 検索結果を表示するためのリンクを含む結果を得る必要があります。

@foreach($companies as $company) 
       <a href="{{route('company.detail', $company->id, $company->company_name)}}">Show detail </a> 
@endforeach 

id l ike/company/idが動作します。私は何が間違っていますか?

+0

'{name}'のように見えるようにコントローラを更新していません。 –

+0

@JonStirlingなぜあなたは意味するのですか? showCompany($ id、$ name)をそのように設定することを意味しますか? – calin24

答えて

0

シンプルでエレガントな方法は、(私は思う)です:

{{route('company.detail', ['id' => $company->id, 'name' => strtolower(preg_replace('/[^A-Za-z0-9-]+/', '-', $company->company_name))}} 

あなたは優しいURL名を持つことができます。そこにはもっと良い解決策があると確信しています。

ルートに複数のパラメータがある場合は、連想配列を使用して各パラメータ名を値で初期化できます。

コントローラは現在idと同じです。

関連する問題