我有以下网址:
/search?customer=my-customer-slug&q=foo
我想知道是否有办法通过搜索Customer
slug将$request->customer
模型绑定到Customer's
。
当URL为/search/{customer-slug}
时,这样做非常简单,但我不知道我是否可以使用查询字符串执行此操作。
答案 0 :(得分:2)
虽然我没有看到使用/search/{customer-slug}
的优势,但您可以使用中间件来实现这一目标。
制作中间件以检查查询字符串中的customer
并将其分配给请求。然后,您可以将此中间件附加到您希望在网址中包含customer
的任何路由。
<?php
namespace App\Http\Middleware;
use App\Customer;
use Closure;
class CustomerQueryStringMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->filled('customer')) {
$customer = Customer::where('slug', $request->customer)->firstOrFail();
$request->merge(['customer' => $customer]);
}
return $next($request);
}
}
答案 1 :(得分:-1)
是的,您可以使用以下方式使用query strings
:
if ($request->has('customer')) {
$user->customer = $request->input('customer');
}