代替ID列,如何将其他DB列用于我的路线

时间:2019-06-04 07:01:38

标签: php laravel

我有这条路线:

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的有限了解似乎不允许我使用正确的关键字。

1 个答案:

答案 0 :(得分:3)

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

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

您可以阅读有关Route Model Binding in the Laravel Documentation.

的更多信息