W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
一旦你定義了一個(gè) lens,你要準(zhǔn)備好將它附加到一個(gè)資源中。每一個(gè) Nova 生成的資源都包含一個(gè) lenses
方法。要將一個(gè) lens 附加一個(gè)資源中,你只需要簡(jiǎn)單的將它添加到 lenses
方法返回的數(shù)組中:
/**
* 獲取屬于該資源的 lenses
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function lenses(Request $request)
{
return [new Lenses\MostValuableUsers];
}
如果你只希望向某些用戶暴露特定的 lens,你可以將 canSee
方法加入到你的 lens 注冊(cè)鏈條中。canSee
方法接受一個(gè)返回 true
或 false
的閉包。該閉包會(huì)接收進(jìn)入的 HTTP 請(qǐng)求。
use App\User;
/**
* Get the lenses available for the resource.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function lenses(Request $request)
{
return [
(new Lenses\MostValuableUsers)->canSee(function ($request) {
return $request->user()->can(
'viewValuableUsers', User::class
);
}),
];
}
在上面的例子中,我們?cè)?nbsp;User
模型中使用了 Authorizable
trait 的 can
方法來判斷授權(quán)的用戶是否已經(jīng)被授權(quán)訪問 viewValuableUsers
action。然而,對(duì)于 canSee
方法來說,通過代理方式訪問授權(quán)規(guī)則的方法是常見的使用案例,因此你可以使用 canSeeWhen
方法來實(shí)現(xiàn)相同的行為。canSeeWhen
方法擁有與 Illuminate\Foundation\Auth\Access\Authorizable
trait 中 can
方法相同的方法簽名:
/**
* 獲取屬于該 resource 的 lenses
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function lenses(Request $request)
{
return [
(new Lenses\MostValuableUsers)->canSeeWhen(
'viewValuableUsers', User::class
),
];
}
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)系方式:
更多建議: