【发布时间】:2017-07-22 21:19:37
【问题描述】:
我有两个相关的模特动漫,剧集
我已经更改了他们两个的 RouteKeyName
在动漫模型中:
public function getRouteKeyName()
{
return 'slug';
}
在剧集模型中:
public function getRouteKeyName()
{
return 'ep_num'; // episode number
}
要查看剧集,我使用这个:
routes/web.php
Route::get('play/{anime}/{episode}', 'EpisodeController@index');
EpisodeController.php
public function index(Anime $anime, Episode $episode)
{
return view('play')->with([
'anime' => $anime,
'episode' => $episode
]);
}
例如,如果我有这个链接
.../play/火影忍者/10
然后通过使用路由模型绑定,我将获得 ep_num=10 的第一集
相反,我希望在 ep_num=10 时播放该剧集
anime_id = $anime->id
有没有办法在 RouteServiceProvider 中做到这一点
我想将此应用于包含动漫和剧集的所有路线,例如:
Route::delete('anime/{anime}/episode/{episode}/delete', 'EpisodeController@destroy');
Route::get('anime/{anime}/episode/{episode}/edit', 'EpisodeController@edit');
Route::put('anime/{anime}/episode/{episode}/edit', 'EpisodeController@update');
【问题讨论】:
-
不太清楚你在追求什么。
anime_id = $anime->id是什么意思? -
anime_id 是剧集表中的外键,我希望它等于路线中动漫的 id
-
好的,你的
Episode动漫模型中的关系是否刚刚称为anime? -
对,就叫动漫
标签: php laravel laravel-routing