代替 ID 列,如何将其他数据库列用于我的路由



我有这条路线:

Route::get('subscribers/{subscriber}', 'SubscriberController@show');

在我的控制器的show方法中,我希望它使用email作为对我的表的查找,而不是默认id。这可能吗?

public function show(Subscriber $subscriber)
{
    // I need this to do like
    // $subscriber = Subscriber::findOrFail(<email>);
    //
    // instead of the default
    // $subscriber = Subscriber::finaOrFail(<id>);
    return $subscriber;
}

我试图在StackOverflow中寻找答案,但我对Laravel的有限了解似乎不允许我使用正确的关键字。

将以下方法添加到Subscriber模型中。

public function getRouteKeyName()
{
    return 'email';
}

您可以在 Laravel 文档中阅读有关路由模型绑定的更多信息。

最新更新