基本輸入
laravel使用一種簡單的方式來訪問用戶提交的信息。 你可以用統(tǒng)一的方式來訪問用戶提交的信息,而不用為用戶提交信息的方式操心。
獲取一個(gè)用戶提交的值
代碼如下:
$name = input::get('name');
為用戶提交信息指定一個(gè)的默認(rèn)返回值(如果用戶未提交)
代碼如下:
$name = input::get('name', 'sally');
判斷指定的提交信息是否存在
代碼如下:
if (input::has('name'))
{
//
}
獲取所有用戶提交的信息
代碼如下:
$input = input::all();
獲取指定的信息,或者獲取排除指定幾個(gè)提交項(xiàng)之外的所有提交信息
代碼如下:
$input = input::only('username', 'password');
$input = input::except('credit_card');
如果提交的表單含有 數(shù)組 形式的輸入,可以使用點(diǎn)符號(hào)訪問數(shù)組:
代碼如下:
$input = input::get('products.0.name');
注意: 有一些javascript庫,比如 backbone 會(huì)以json格式提交信息。 通過 input::get 來獲取信息,使用上無差別。
cookies
laravel會(huì)加密所有已創(chuàng)建的cookie信息,并附加上授權(quán)碼,當(dāng)客戶端擅自修改cookie信息時(shí),該cookie將被廢棄,從而保證安全性。
獲取一個(gè)指定的cookie值
代碼如下:
$value = cookie::get('name');
添加一個(gè)新的cookie鍵值對(duì)
代碼如下:
$response = response::make('hello world');
$response->withcookie(cookie::make('name', 'value', $minutes));
加入下一個(gè)response的cookie隊(duì)列之中
如果想在response創(chuàng)建之前設(shè)置cookie,可以使用 cookie::queue() 方法。cookie將通過應(yīng)用框架自動(dòng)添加到最終的response之中。
代碼如下:
cookie::queue($name, $value, $minutes);
創(chuàng)建一個(gè)永不過期的cookie鍵值對(duì)
代碼如下:
$cookie = cookie::forever('name', 'value');
用戶提交信息持久化
有時(shí)可能需要在用戶的多個(gè)請(qǐng)求之間持久化用戶提交的信息。 比如,當(dāng)用戶提交的信息驗(yàn)證失敗重新返回提交信息頁面時(shí)還原用戶的輸入。
將用戶提交的信息存入session
代碼如下:
input::flash();
把指定的用戶提交的信息存入session
代碼如下:
input::flashonly('username', 'email');
input::flashexcept('password');
如果你需要關(guān)聯(lián)持久用戶提交的信息的操作和重定向操作,可以使用如下的鏈?zhǔn)秸{(diào)用的方法:
代碼如下:
return redirect::to('form')->withinput();
return redirect::to('form')->withinput(input::except('password'));
注意: 如果你想持久化其它的信息,請(qǐng)參考 session 類.
獲取已持久化的用戶提交的信息
代碼如下:
input::old('username');
文件上傳
獲取用戶上傳的文件
代碼如下:
$file = input::file('photo');
判斷指定文件是否已經(jīng)被上傳
代碼如下:
if (input::hasfile('photo'))
{
//
}
file 方法返回了一個(gè) symfony\component\httpfoundation\file\uploadedfile 類的實(shí)例, 該類繼承自php的 splfileinfo 類,并提供了大量操作該用戶上傳的文件的方法。
移動(dòng)一個(gè)已上傳的文件
代碼如下:
input::file('photo')->move($destinationpath);
input::file('photo')->move($destinationpath, $filename);
獲取一個(gè)已上傳的文件在服務(wù)器的真實(shí)路徑
代碼如下:
$path = input::file('photo')->getrealpath();
獲取一個(gè)已上傳的文件的大小
代碼如下:
$size = input::file('photo')->getsize();
獲取一個(gè)已上傳的文件的 mime 類型
代碼如下:
$mime = input::file('photo')->getmimetype();
用戶請(qǐng)求的詳細(xì)信息
request 類提供了許多 方法 用于獲取關(guān)于請(qǐng)求的詳細(xì)信息,該類繼承自 symfony\component\httpfoundation\request 類。 下面提供了幾個(gè)具有代表性的方法:
獲取請(qǐng)求uri
$uri = request::path();
判斷請(qǐng)求路徑是否符合指定模式
代碼如下:
if (request::is('admin/*'))
{
//
}
獲取請(qǐng)求url
$url = request::url();
獲取請(qǐng)求uri信息
$segment = request::segment(1);
獲取請(qǐng)求頭里的content-type信息
$value = request::header('content-type');
獲取 $_server 數(shù)組里指定的值
$value = request::server('path_info');
判斷是否是使用ajax請(qǐng)求
代碼如下:
if (request::ajax())
{
//
}
判斷請(qǐng)求是否使用https連接
代碼如下:
if (request::secure())
{
//
}
檢測(cè)請(qǐng)求的響應(yīng)格式
request::format 方法基于 http 請(qǐng)求頭的 accept 信息返回客戶端希望獲取的響應(yīng)格式:
代碼如下:
if (request::format() == 'json')
{
//
}