驗證後處理重定向
有時你可能需要登入以確定使用者在提交表單後重定向到的位置。表單請求提供了多種方式。
預設情況下,在請求 $redirect
,$redirectRoute
和 $redirectAction
中宣告瞭 3 個變數。
除了這三個變數之外,你還可以覆蓋主重定向處理程式 getRedirectUrl()
。
下面給出了一個示例請求,說明你可以執行的操作。
<?php namespace App;
use Illuminate\Foundation\Http\FormRequest as Request;
class SampleRequest extends Request {
// Redirect to the given url
public $redirect;
// Redirect to a given route
public $redirectRoute;
// Redirect to a given action
public $redirectAction;
/**
* Get the URL to redirect to on a validation error.
*
* @return string
*/
protected function getRedirectUrl()
{
// If no path is given for `url()` it will return a new instance of `Illuminate\Routing\UrlGenerator`
// If your form is down the page for example you can redirect to a hash
return url()->previous() . '#contact';
//`url()` provides several methods you can chain such as
// Get the current URL
return url()->current();
// Get the full URL of the current request
return url()->full();
// Go back
return url()->previous();
// Or just redirect back
return redirect()->back();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [];
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
}