から結合モデル:Laravel 5 - 私は、次のURL持っているクエリ文字列
/search?customer=my-customer-slug&q=foo
をCustomer's
スラグから検索することで、$request->customer
にCustomer
モデルをバインドする方法があるかどうか、私は疑問に思います。
URLが/search/{customer-slug}
のときは、これは非常に簡単ですが、私はそれがクエリ文字列でできるかどうかわかりません。
から結合モデル:Laravel 5 - 私は、次のURL持っているクエリ文字列
/search?customer=my-customer-slug&q=foo
をCustomer's
スラグから検索することで、$request->customer
にCustomer
モデルをバインドする方法があるかどうか、私は疑問に思います。
URLが/search/{customer-slug}
のときは、これは非常に簡単ですが、私はそれがクエリ文字列でできるかどうかわかりません。
/search/{customer-slug}
を使用する利点はありませんが、これを達成するためにミドルウェアを使用できます。
クエリー文字列内のcustomer
を確認してリクエストに割り当てます。次に、このミドルウェアをURLに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);
}
}
はいあなたは、以下の方法でquery strings
でそれを行うことができます。
if ($request->has('customer')) {
$user->customer = $request->input('customer');
}
これはリクエストパラメータをCustomerにバインドしていません。 –
彼はfunction/searchのURLからcustomerパラメータの値にアクセスしたいのですか?customer = my-customer-slug&q = foo –
グレート@Hamoud。私は優位を探していない、私はそうする方法があるかどうか疑問に思っていただけだ。 – juniorgarcia