我正在使用 laravel,但我遇到了一個問題,我有這樣的 URL
https://example.com?version=2.2.0
現在我在匹配查詢引數應該洗掉的版本后創建中間件。下面是中間件代碼
public function handle($request, Closure $next)
{
$input = $request->all();
$request->replace($request->except(['version']));
return $next($request);
}
但是,盡管可以使用發布資料,但無法洗掉查詢引數。
uj5u.com熱心網友回復:
為什么不使用 justremove方法?
public function handle($request, Closure $next)
{
$input = $request->all();
$request->remove('version');
return $next($request);
}
這是 remove 方法在 laravel 源代碼中所做的事情:
/**
* Removes a parameter.
*/
public function remove(string $key)
{
unset($this->parameters[$key]);
}
uj5u.com熱心網友回復:
只需取消設定查詢引數。
public function handle($request, Closure $next)
{
if( $request->has('version') ){
unset($request['version']);
}
return $next($request);
}
uj5u.com熱心網友回復:
如果我理解正確,您想?version=2.2.0從您的網址中洗掉?
您可以使用以下代碼執行此操作:
// This only works for GET requests, NOT for POST requests.
if ($request->has('version')) {
return redirect()->to($request->fullUrlWithoutQuery('version'));
}
return $next($request);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/425333.html
下一篇:向laravel集合添加屬性
