Laravel Nova-隐藏视图并在BelongsToMany字段中进行编辑

时间:2018-09-26 06:43:19

标签: laravel laravel-5.6 laravel-nova

模型QuestionChoice之间的关系是多对多的。

Nova/Question

public function fields(Request $request)
{
    return [
        ...
        BelongsToMany::make('Choices')
    ]
}

哪个显示在屏幕下方

enter image description here

我想从视图中隐藏视图和编辑选项。只允许用户附加/分离选择。

我尝试使用下面的方法创建QuestionPolicy,但该方法无效。如果我使用ChoicePolicy的{​​{1}}和update方法,它将隐藏create资源中的视图和编辑选项。

Choice

如何实现对关系隐藏视图和编辑选项?

更新

public function updateChoice(User $user, Question $question) { return false; } 模型

Question

class Question extends Model { ... /** * The choices that belong to the question. */ public function choices() { return $this->belongsToMany('App\Choice'); } } 模型

Choice

4 个答案:

答案 0 :(得分:0)

希望这对您有帮助

public function fields(Request $request)
{
     return [
        ...
        BelongsToMany::make('Choices')->except('edit','view');
     ]
}

答案 1 :(得分:0)

您可以在政策中将其退回,更新内容同样如此

Data[] mapPojos = new GsonBuilder().registerTypeAdapter(Key.class, ds).create()
            .fromJson(x, Data[].class);

答案 2 :(得分:0)

我认为您需要将以下代码放入QuestionPolicy中:

2x5 + 1x3
0

希望此帮助。 https://nova.laravel.com/docs/1.0/resources/authorization.html#authorizing-attaching-detaching

答案 3 :(得分:0)

在您的QuestionPolicy中定义

public function attachChoice(User $user, Question $question, Choice $choice)
{
   return ! $question->choices->contains($choice);
}

从此github issue开始,请查看更多详细信息