Laravel Nova - Скрыть вид и редактировать из поля BelongsToMany - PullRequest
0 голосов
/ 26 сентября 2018

Отношение между моделью Question & Choice - «Много ко многим».

Nova/Question:

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

, отображаемое под экраном

enter image description here

Я хотел бы скрыть вид и редактировать опцию из вида.Разрешение пользователю только присоединять / отсоединять выбор.

Я попытался создать QuestionPolicy с помощью метода ниже, который не работал.Если я использую метод ChoicePolicy 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 модель

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

Ответы [ 3 ]

0 голосов
/ 27 сентября 2018

вы можете вернуть это в своей политике, и то же самое перейдет к вашему обновлению

 public function view(User $user, Survey $survey)
     {
         return false
      }
0 голосов
/ 18 января 2019

Я думаю, что вам нужно поместить код ниже в вашей QuestionPolicy:

public function attachAnyChoice()
{
   return false;
}

Надеюсь, что это поможет.https://nova.laravel.com/docs/1.0/resources/authorization.html#authorizing-attaching-detaching

0 голосов
/ 26 сентября 2018

Надеюсь, это поможет вам

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