2017-05-08 124 views
-1

我有我的路線目錄web.php定義的這條路線,就像你看到的控制器期待外卡通過URL傳遞,路徑模型,結合Laravel

Route::get('/FeaturedPosts/{post}', '[email protected]'); 

,而在控制文件:我確實有處理請求的索引方法;

public function show (Post $post){ 

return $post; 
} 

我的問題是爲什麼通配符名稱必須與控制器上的變量名稱相同?它的邏輯解釋是什麼?

回答

2

有了一個變量它不會不管它是怎麼叫的,但你看這個:

/question/{question}/answer/{answer} 

你可以用

public function show(Question $question, Answer $answer) 

public function show(Answer $answer, Question $question) 

Laravel是調用此使用動態注入,因此放置變量的位置並不重要,但它必須具有明確的ident名稱如果它。

+0

其實這很重要;當var名稱不一樣時,我得到一個空的json文件;當通配符與路由模型綁定var具有相同的名稱時,則我在我的json文件上獲取數據。這就是爲什麼我要求它背後的邏輯解釋,爲什麼他們必須有相同的名稱。 –

+0

您可以使用其他名稱,但必須在'routeserviceprovider'中定義它。例如。你想要'/ user/tom'而不是'/ user/1',那麼你必須做一個新的綁定。 – mimo