跟我學(xué)Laravel之請求與輸入

字號:


    基本輸入
    Laravel使用一種簡單的方式來訪問用戶提交的信息。 你可以用統(tǒng)一的方式來訪問用戶提交的信息,而不用為用戶提交信息的方式操心。
    獲取一個用戶提交的值
    代碼如下:
    $name = Input::get('name');
    為用戶提交信息指定一個的默認(rèn)返回值(如果用戶未提交)
    代碼如下:
    $name = Input::get('name', 'Sally');
    判斷指定的提交信息是否存在
    代碼如下:
    if (Input::has('name'))
    {
    //
    }
    獲取所有用戶提交的信息
    代碼如下:
    $input = Input::all();
    獲取指定的信息,或者獲取排除指定幾個提交項之外的所有提交信息
    代碼如下:
    $input = Input::only('username', 'password');
    $input = Input::except('credit_card');
    如果提交的表單含有 "數(shù)組" 形式的輸入,可以使用點(diǎn)符號訪問數(shù)組:
    代碼如下:
    $input = Input::get('products.0.name');
    注意: 有一些javascript庫,比如 Backbone 會以json格式提交信息。 通過 Input::get 來獲取信息,使用上無差別。
    Cookies
    Laravel會加密所有已創(chuàng)建的cookie信息,并附加上授權(quán)碼,當(dāng)客戶端擅自修改cookie信息時,該cookie將被廢棄,從而保證安全性。
    獲取一個指定的cookie值
    代碼如下:
    $value = Cookie::get('name');
    添加一個新的cookie鍵值對
    代碼如下:
    $response = Response::make('Hello World');
    $response->withCookie(Cookie::make('name', 'value', $minutes));
    加入下一個Response的Cookie隊列之中
    如果想在Response創(chuàng)建之前設(shè)置cookie,可以使用 Cookie::queue() 方法。cookie將通過應(yīng)用框架自動添加到最終的Response之中。
    代碼如下:
    Cookie::queue($name, $value, $minutes);
    創(chuàng)建一個永不過期的cookie鍵值對
    代碼如下:
    $cookie = Cookie::forever('name', 'value');
    用戶提交信息持久化
    有時可能需要在用戶的多個請求之間持久化用戶提交的信息。 比如,當(dāng)用戶提交的信息驗證失敗重新返回提交信息頁面時還原用戶的輸入。
    將用戶提交的信息存入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'));
    注意: 如果你想持久化其它的信息,請參考 Session 類.
    獲取已持久化的用戶提交的信息
    代碼如下:
    Input::old('username');
    文件上傳
    獲取用戶上傳的文件
    代碼如下:
    $file = Input::file('photo');
    判斷指定文件是否已經(jīng)被上傳
    代碼如下:
    if (Input::hasFile('photo'))
    {
    //
    }
    file 方法返回了一個 Symfony\Component\HttpFoundation\File\UploadedFile 類的實(shí)例, 該類繼承自PHP的 SplFileInfo 類,并提供了大量操作該用戶上傳的文件的方法。
    移動一個已上傳的文件
    代碼如下:
    Input::file('photo')->move($destinationPath);
    Input::file('photo')->move($destinationPath, $fileName);
    獲取一個已上傳的文件在服務(wù)器的真實(shí)路徑
    代碼如下:
    $path = Input::file('photo')->getRealPath();
    獲取一個已上傳的文件的大小
    代碼如下:
    $size = Input::file('photo')->getSize();
    獲取一個已上傳的文件的 MIME 類型
    代碼如下:
    $mime = Input::file('photo')->getMimeType();
    用戶請求的詳細(xì)信息
    Request 類提供了許多 方法 用于獲取關(guān)于請求的詳細(xì)信息,該類繼承自 Symfony\Component\HttpFoundation\Request 類。 下面提供了幾個具有代表性的方法:
    獲取請求URI
    $uri = Request::path();
    判斷請求路徑是否符合指定模式
    代碼如下:
    if (Request::is('admin/*'))
    {
    //
    }
    獲取請求URL
    $url = Request::url();
    獲取請求URI信息
    $segment = Request::segment(1);
    獲取請求頭里的Content-Type信息
    $value = Request::header('Content-Type');
    獲取 $_SERVER 數(shù)組里指定的值
    $value = Request::server('PATH_INFO');
    判斷是否是使用ajax請求
    代碼如下:
    if (Request::ajax())
    {
    //
    }
    判斷請求是否使用https連接
    代碼如下:
    if (Request::secure())
    {
    //
    }
    檢測請求的響應(yīng)格式
    Request::format 方法基于 HTTP 請求頭的 Accept 信息返回客戶端希望獲取的響應(yīng)格式:
    代碼如下:
    if (Request::format() == 'json')
    {
    //
    }