溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Laravel中怎么實(shí)現(xiàn)請(qǐng)求與輸入

發(fā)布時(shí)間:2021-07-19 14:18:01 來(lái)源:億速云 閱讀:99 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

今天就跟大家聊聊有關(guān)Laravel中怎么實(shí)現(xiàn)請(qǐng)求與輸入,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

基本輸入

Laravel使用一種簡(jiǎn)單的方式來(lái)訪問(wèn)用戶提交的信息。 你可以用統(tǒng)一的方式來(lái)訪問(wèn)用戶提交的信息,而不用為用戶提交信息的方式操心。

獲取一個(gè)用戶提交的值

復(fù)制代碼 代碼如下:


$name = Input::get('name');

為用戶提交信息指定一個(gè)的默認(rèn)返回值(如果用戶未提交)

復(fù)制代碼 代碼如下:


$name = Input::get('name', 'Sally');

判斷指定的提交信息是否存在

復(fù)制代碼 代碼如下:


if (Input::has('name'))
{
    //
}

獲取所有用戶提交的信息

復(fù)制代碼 代碼如下:


$input = Input::all();

獲取指定的信息,或者獲取排除指定幾個(gè)提交項(xiàng)之外的所有提交信息

復(fù)制代碼 代碼如下:


$input = Input::only('username', 'password');

$input = Input::except('credit_card');

如果提交的表單含有 "數(shù)組" 形式的輸入,可以使用點(diǎn)符號(hào)訪問(wèn)數(shù)組:

復(fù)制代碼 代碼如下:


$input = Input::get('products.0.name');

注意: 有一些javascript庫(kù),比如 Backbone 會(huì)以json格式提交信息。 通過(guò) Input::get 來(lái)獲取信息,使用上無(wú)差別。

Cookies

Laravel會(huì)加密所有已創(chuàng)建的cookie信息,并附加上授權(quán)碼,當(dāng)客戶端擅自修改cookie信息時(shí),該cookie將被廢棄,從而保證安全性。

獲取一個(gè)指定的cookie值

復(fù)制代碼 代碼如下:


$value = Cookie::get('name');

添加一個(gè)新的cookie鍵值對(duì)

復(fù)制代碼 代碼如下:


$response = Response::make('Hello World');

$response->withCookie(Cookie::make('name', 'value', $minutes));

加入下一個(gè)Response的Cookie隊(duì)列之中

如果想在Response創(chuàng)建之前設(shè)置cookie,可以使用 Cookie::queue() 方法。cookie將通過(guò)應(yīng)用框架自動(dòng)添加到最終的Response之中。

復(fù)制代碼 代碼如下:


Cookie::queue($name, $value, $minutes);

創(chuàng)建一個(gè)永不過(guò)期的cookie鍵值對(duì)

復(fù)制代碼 代碼如下:


$cookie = Cookie::forever('name', 'value');

用戶提交信息持久化

有時(shí)可能需要在用戶的多個(gè)請(qǐng)求之間持久化用戶提交的信息。 比如,當(dāng)用戶提交的信息驗(yàn)證失敗重新返回提交信息頁(yè)面時(shí)還原用戶的輸入。

將用戶提交的信息存入Session

復(fù)制代碼 代碼如下:


Input::flash();

把指定的用戶提交的信息存入Session

復(fù)制代碼 代碼如下:


Input::flashOnly('username', 'email');

Input::flashExcept('password');

如果你需要關(guān)聯(lián)持久用戶提交的信息的操作和重定向操作,可以使用如下的鏈?zhǔn)秸{(diào)用的方法:

復(fù)制代碼 代碼如下:


return Redirect::to('form')->withInput();

return Redirect::to('form')->withInput(Input::except('password'));

注意: 如果你想持久化其它的信息,請(qǐng)參考 Session 類.
獲取已持久化的用戶提交的信息

復(fù)制代碼 代碼如下:


Input::old('username');

文件上傳

獲取用戶上傳的文件

復(fù)制代碼 代碼如下:


$file = Input::file('photo');

判斷指定文件是否已經(jīng)被上傳

復(fù)制代碼 代碼如下:


if (Input::hasFile('photo'))
{
    //
}

file 方法返回了一個(gè) Symfony\Component\HttpFoundation\File\UploadedFile 類的實(shí)例, 該類繼承自PHP的 SplFileInfo 類,并提供了大量操作該用戶上傳的文件的方法。

移動(dòng)一個(gè)已上傳的文件

復(fù)制代碼 代碼如下:


Input::file('photo')->move($destinationPath);

Input::file('photo')->move($destinationPath, $fileName);

獲取一個(gè)已上傳的文件在服務(wù)器的真實(shí)路徑

復(fù)制代碼 代碼如下:


$path = Input::file('photo')->getRealPath();

獲取一個(gè)已上傳的文件的大小

復(fù)制代碼 代碼如下:


$size = Input::file('photo')->getSize();

獲取一個(gè)已上傳的文件的 MIME 類型

復(fù)制代碼 代碼如下:


$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)求路徑是否符合指定模式

復(fù)制代碼 代碼如下:


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)求

復(fù)制代碼 代碼如下:


if (Request::ajax())
{
    //
}

判斷請(qǐng)求是否使用https連接

復(fù)制代碼 代碼如下:


if (Request::secure())
{
    //
}

檢測(cè)請(qǐng)求的響應(yīng)格式

Request::format 方法基于 HTTP 請(qǐng)求頭的 Accept 信息返回客戶端希望獲取的響應(yīng)格式:

復(fù)制代碼 代碼如下:


if (Request::format() == 'json')
{
    //
}

看完上述內(nèi)容,你們對(duì)Laravel中怎么實(shí)現(xiàn)請(qǐng)求與輸入有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI