Laravel模型的绑定基于五参数而不是尿液段

发布于 2025-02-13 06:22:29 字数 542 浏览 0 评论 0 原文

我有像这样的路线

Route::match(['GET'], 'banana/{id}', 'BananaController@view');
Route::bind('id', function ($id): ?Banana
    {
        return Banana::findOrFail($id);
    });

中,我将具有不错的模型绑定,

public function view(Banana $banana)
{
    return view('view', [
        'banana' => $banana,
    ]);
}

,在这样的控制器

https://bananas.com/banana/666

但是我需要在URL上使用此操作,

https://bananas.com/banana?id=666

如何使用Get-参数而不是URI片段进行此模型绑定?

I have route like

Route::match(['GET'], 'banana/{id}', 'BananaController@view');
Route::bind('id', function ($id): ?Banana
    {
        return Banana::findOrFail($id);
    });

So, I will have nice model binding in controller like

public function view(Banana $banana)
{
    return view('view', [
        'banana' => $banana,
    ]);
}

This will work on url

https://bananas.com/banana/666

But I need this action on url

https://bananas.com/banana?id=666

How can I make this model binding using GET-parameter instead of URI-segment?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铃予 2025-02-20 06:22:29

最好的选择可能是添加一条获取路线并直接检索查询。

Route::get('/banana', function (Request $request) {
    $id = $request->query('id');
    $banana = Banana::findOrFail($id);
    return view('view', ['banana' => $banana]);
});

可以在下面找到更多信息:

Your best bet is probably adding a GET route and retrieving the query directly.

Route::get('/banana', function (Request $request) {
    $id = $request->query('id');
    $banana = Banana::findOrFail($id);
    return view('view', ['banana' => $banana]);
});

More information can be found below:
https://laravel.com/docs/9.x/requests#retrieving-input-from-the-query-string

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文