Laravel Nova 索引按钮未出现

Dou*_*cum 5 php laravel laravel-nova

我正在构建 Laravel Nova 界面,并向每个资源添加必要的字段。但是我注意到编辑/详细信息/垃圾按钮没有出现在我的索引视图上。

是否需要将某些内容添加到我的资源类中,或者是否与我的控制器的构建方式有关?

这就是我的 fields 方法的样子:

/**
 * Get the fields displayed by the resource.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),

        Gravatar::make(),

        Text::make('First Name')
            ->sortable()
            ->rules('required', 'max:255'),

        Text::make('Last Name')
            ->sortable()
            ->rules('required', 'max:255'),

        Text::make('Email')
            ->sortable()
            ->rules('required', 'email', 'max:255')
            ->creationRules('unique:users,email')
            ->updateRules('unique:users,email,{{resourceId}}'),

        Text::make('Administrator', 'is_admin')
            ->sortable()
            ->rules('required', 'max:255'),

        Password::make('Password')
            ->onlyOnForms()
            ->creationRules('required', 'string', 'min:6')
            ->updateRules('nullable', 'string', 'min:6'),

        HasMany::make('Configuration'),
    ];
}
Run Code Online (Sandbox Code Playgroud)

列表视图图像

Chi*_*ung 4

由于您为用户设置了策略,因此您必须在UserPolicy类中包含以下函数:

viewAny
view
create
update
delete
restore
forceDelete
Run Code Online (Sandbox Code Playgroud)

您可以将它们设置为return true,它们就会出现。例如:

public function update(User $user){
    return true;
}
Run Code Online (Sandbox Code Playgroud)

然后你的更新按钮就会出现。

如果策略存在但缺少特定操作的方法,则将不允许用户执行该操作。因此,如果您定义了策略,请不要忘记定义其所有相关的授权方法。

有关政策的更多信息:https ://nova.laravel.com/docs/1.0/resources/authorization.html#policies