Laravel 和 helper 方法支持 URL 查询参数。不幸的是,帮助器方法没有。route()
action()
url()
只需为路由参数提供一个包含键值的数组。例如:
route('products.index', ['manufacturer' => 'Samsung']);
// Returns 'http://localhost/products?manufacturer=Samsung'
您仍然可以包含您的路由参数(例如 ID 和模型)来伴随这些参数:
route('products.show', [$product->id, 'model' => 'T9X']);
// Returns 'http://localhost/products/1?model=T9X'
基本上,数组中包含字符串键的任何元素都将被视为查询参数 ()。任何具有整数键的内容都将被视为 URL 参数 ()。/products?param=value
/products/{arg}
此操作在操作方法中也受支持:
action('ProductController@index', ['manufacturer' => 'Samsung']);
您还可以在 和 方法中提供查询参数:link_to_route()
link_to_action()
link_to_route('products.index', 'Products by Samsung', ['model' => 'Samsung');
link_to_action('ProductController@index', 'Products by Samsung', ['model' => 'Samsung']);
2019 - 编辑:
如果不能使用 或 ,则可以使用帮助程序生成具有查询参数的 URL:route()
action()
Arr::query()
url('/products?').\Illuminate\Support\Arr::query(['manufacturer' => 'Samsung']);
// Returns 'http://localhost/products?manufacturer=Samsung'
艺术
url('/products?').http_build_query(['manufacturer' => 'Samsung'], null, '&', PHP_QUERY_RFC3986);
// Returns 'http://localhost/products?manufacturer=Samsung'
或者创建一个简单的帮助程序函数:
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
function url_query($to, array $params = [], array $additional = []) {
return Str::finish(url($to, $additional), '?') . Arr::query($params);
}
然后调用它:
url_query('products', ['manufacturer' => 'Samsung']);
// Returns 'http://localhost/products?manufacturer=Samsung'
url_query('products', ['manufacturer' => 'Samsung'], [$product->id]);
// Returns 'http://localhost/products/1?manufacturer=Samsung'