gpt4 book ai didi

php - 从 Controller 访问 Laravel 路由或从路由传递参数到 Controller

转载 作者:可可西里 更新时间:2023-10-31 23:58:41 29 4
gpt4 key购买 nike

我的图片库应用程序中有四个路线。它们都做同样的事情:查询数据库和渲染图片。它们之间的唯一区别是记录的顺序。例如:

http://example.com/favorites : shows pics ordered by favorites
http://example.com/random : shows pics ordered by random
http://example.com/votes : shows pics ordered by votes
http://example.com/views : shows pics ordered by views

为此,我想在我的图库 Controller 中使用一个操作并将订单作为参数传递。

我知道我可以创建这条路线:

Route::get('/{orderby}', 'GalleryController@showPics')

然后从controller中获取参数:

class GalleryController extends BaseController
{
public function showPics($orderby)
{
//query model ordering by $orderby and render the view
}
}

问题是我不想捕获 example.com/whatever,只捕获那四个特定路由。

有没有一种方法可以将参数从路由传递给 Controller ​​操作。或者,或者,从 Controller 读取当前访问的路由?

最佳答案

您可以向路由添加参数约束,使用正则表达式限制可能的值,如下所示。

Route::get('/{orderby}', 'GalleryController@showPics')
->where('orderBy', 'favorite|random|vote|view');

如您所知,您将在映射的 Controller 操作中获得这些值:

public function showPics($orderby)
{
dd($orderby); // favorite, random, vote or view.
}

您可以在文档中阅读有关参数路由约束的更多信息:http://laravel.com/docs/routing#route-parameters

关于php - 从 Controller 访问 Laravel 路由或从路由传递参数到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18208969/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com