Laravel 路由:使用 URL 查询字符串时如何路由?

Posted

技术标签:

【中文标题】Laravel 路由:使用 URL 查询字符串时如何路由?【英文标题】:Laravel Routing: How to route when using URL query string? 【发布时间】:2014-08-23 17:13:11 【问题描述】:

我有一条路线 - 我们称之为 stats。这是我的路由当前的样子:

Route::get('stats', 'StatsController@index');
Route::get('stats/query', 'StatsController@store');

我的目标是在有人访问 /stats 时显示统计数据,并在有人访问类似于 /stats? 的 URL 时存储统计数据? name=John&device=android

如果有一个查询字符串附加到我的命名空间 stats,我将如何路由?

这样的?

Route::get('stats/?name=*&device=*', 'StatsController@store');

【问题讨论】:

检查输入是否为空 【参考方案1】:

routes.php

Route::get('stats', 'StatsController@index');

统计控制器

public function index()

    if(Input::has('name') and Input::has('device')))
        return $this->store();

    // Show stat ...


public function store()

    $input = Input::only('name', 'device');

    // Store stat ...

虽然这对于 RESTFUL 控制器来说似乎是一个完美的场景。发送输入的人应该使用 POST 请求来完成

【讨论】:

以上是关于Laravel 路由:使用 URL 查询字符串时如何路由?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 路由来检查多个字符串

如何构建需要特定 URL 查询参数的 Laravel 路由?

如何在Laravel 5.2中将表单数据作为路由参数传递

使用产品结账时如何用 laravel + cashier 生成发票

Laravel 4 和 AngularJS - 使用路由清理 URL

如何使用 Laravel 将查询字符串附加到分页链接