laravel模版中的old()方法是做什么的?
光陰似箭催人老,日月如移越少年。
你可以用phpstorm,然后command+b看他的源碼,
if (! function_exists('old')) {
/**
Retrieve an old input item.
*
@param string $key
@param mixed $default
@return mixed
*/
old($key = null, $default = null)
{
return app('request')->old($key, $default);
}
}
其實(shí)這里也是指向了request的
可以用來接收,validate 對象返回的舊的輸入數(shù)據(jù)。這樣用戶在驗(yàn)證失敗的時(shí)候可以知道之前填寫的數(shù)據(jù)是什么。
比如post到一個(gè)地址,驗(yàn)證數(shù)據(jù)出錯(cuò)的時(shí)候,要返回上一頁,為了更好的用戶體驗(yàn),會把填寫的信息保存到flash session中,在上一頁顯示出來。
這樣用戶不至于在辛辛苦苦填寫了一大堆表單數(shù)據(jù)后出錯(cuò),然后返回重填。
文檔:http://laravel-china.org/docs...
舊輸入數(shù)據(jù)
當(dāng)用戶提交表單失敗后laravel會自動(dòng)把用戶的輸入數(shù)據(jù)閃存到一次性的session里面(這個(gè)數(shù)據(jù)一刷新就會丟失,故稱為一次性數(shù)據(jù))。那么old('input_name')就可以取出session中的閃存數(shù)據(jù),從而避讓讓用戶重新輸入。
<input type="text" name="input_name" value="{{ old('input_name') }}" />