99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Laravel Nova 注冊 Lenses

2023-02-16 17:09 更新

一旦你定義了一個 lens,你要準備好將它附加到一個資源中。每一個 Nova 生成的資源都包含一個 lenses 方法。要將一個 lens 附加一個資源中,你只需要簡單的將它添加到 lenses 方法返回的數(shù)組中:

/**
 * 獲取屬于該資源的 lenses
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
public function lenses(Request $request)
{
    return [new Lenses\MostValuableUsers];
}

授權(quán)

如果你只希望向某些用戶暴露特定的 lens,你可以將 canSee 方法加入到你的 lens 注冊鏈條中。canSee 方法接受一個返回 true 或 false 的閉包。該閉包會接收進入的 HTTP 請求。

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
            );
        }),
    ];
}

在上面的例子中,我們在 User 模型中使用了 Authorizable trait 的 can 方法來判斷授權(quán)的用戶是否已經(jīng)被授權(quán)訪問 viewValuableUsers action。然而,對于 canSee 方法來說,通過代理方式訪問授權(quán)規(guī)則的方法是常見的使用案例,因此你可以使用 canSeeWhen 方法來實現(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
        ),
    ];
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號