我正在將一個大型項目從CodeIgniter移動到Laravel 5,並且遇到了一個我似乎無法找到解決方案的問題。Laravel方法模型綁定?
我知道你可以做路由模型綁定,並且我一直在使用它沒有問題,並且我知道你可以做方法注入,比如注入請求到方法中。
但我的「問題」是我有多個類具有相同的名稱,但該項目的不同部分,例如:
App\Models\Knowledgebase\Article
App\Models\News\Article
App\Models\Minisite\Resources\Article
正如你所看到的,我有3種不同的型號Article
。一個用於知識庫文章,一個用於新聞文章,另一個用於部門資源文章。
但是,使用路由模型綁定,似乎我只能將一個模型綁定到關鍵字,並且由於我的URL每個都有關鍵字Article,所以它不起作用。
所以我的問題是,是否有可能通過將其指定爲參數將相關模型注入方法中?或者我需要硬編碼到方法說:
$article = App\Models\Knowledgebase\Article::find($some_id);
或者,我可以做這樣的事情:
public function show(App\Models\Knowledgebase\Article $article)
{
// code
}
此刻,如果我嘗試注入的文章,$article
變文章模型的新實例,而不是模型記錄。這似乎有點奇怪,框架會讓你手動檢索每種方法的模型。
任何幫助表示讚賞。
我可以用'Route :: resource()'使用這種方法嗎?無論哪種方式,這也很有幫助 –
@PhilCross我不使用'Route :: resource()'太多了,對不起。也許? – ceejayoz
我決定用單獨的路線替換路線資源(get/post/put等)。至少這樣我可以在Route文件中更好地控制模型別名的名稱。 –