W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有些時(shí)候,你可能希望在給定條件滿足時(shí)添加屬性到資源響應(yīng)里。例如,你可能希望如果當(dāng)前用戶(hù)是「管理員」時(shí)添加某個(gè)值到資源響應(yīng)中。在這種情況下 Laravel 提供了一些輔助方法來(lái)幫助你解決問(wèn)題。 when
方法可以被用來(lái)有條件地向資源響應(yīng)添加屬性:
/**
* 將資源轉(zhuǎn)換成數(shù)組
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'secret' => $this->when(Auth::user()->isAdmin(), 'secret-value'),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
在上面這個(gè)例子中,只有當(dāng) isAdmin
方法返回 true
時(shí),secret
鍵才會(huì)最終在資源響應(yīng)中被返回。如果該方法返回 false
,則 secret
鍵將會(huì)在資源響應(yīng)被發(fā)送給客戶(hù)端之前被刪除。when
方法可以使你避免使用條件語(yǔ)句拼接數(shù)組,轉(zhuǎn)而用更優(yōu)雅的方式來(lái)編寫(xiě)你的資源。
when
方法也接受閉包作為其第二個(gè)參數(shù),只有在給定條件為 true
時(shí),才從閉包中計(jì)算返回的值:
'secret' => $this->when(Auth::user()->isAdmin(), function () {
return 'secret-value';
}),
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: