2017-07-21 177 views
0

我遇到了問題,通過修改視圖的路由。我要的不是/公司/ ID展示/公司/ ID /名稱ErrorException缺少必需參數laravel

路線:

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

顯示在控制器的方法:

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一樣。

相關問題