2016-11-22 122 views
1

我目前使用Laravel 5.3,並且我有許多類似的路由。Laravel命名的路由參數無法正常工作

Route::get('/news/create/{product}', '[email protected]')->name('news::create'); 

所以在使用route()功能,像這樣我的刀模板IM:

{{route('news::create','car')}} 

但是生成的URL是

/news/create?car 

不是必需的

/news/create/car 

的同事情發生,如果我把它放在一個數組:

{{route('news::create',['car'])}} 

如果我給它,像這樣的關鍵:

{{route('news::create',['product'=>'car'])}} 

我得到:

/news/create?product=car 

我如何得到正確的所以它傳遞給'創建'函數作爲參數?

+0

第一個問題 - 爲什麼你命名的路線裏面它冒號? –

回答

0

首先,看看你的路線命名。我認爲除了命名像'news :: create'之類的路線之外,並沒有什麼特別的錯誤,因爲它很醜,很可能被認爲是不好的做法。我喜歡用camel casing,這意味着我會使用一個名稱,如createNews。當回到舊代碼段工作時,它會容易得多,並且會阻止其他程序員在你和他一起工作時刺傷你。

我們可以命名路由的原因是,即使我們更改路由URI或控制器端點,名稱也保持靜態。我們可以使用路由參數將變量傳遞給它。

Route::get('/news/create/{product}', array('as' => 'createNews', 'uses' => '[email protected]')); 


route('createNews', ['product' => 'car']); 
相關問題