Laravel Nova-相关资源上的隐藏更新图标(附加编辑)

时间:2019-04-16 09:00:41

标签: php laravel laravel-nova laravel-5.8

有人知道我如何摆脱相关资源的详细信息页面上的更新图标吗?

我说的是这里的图标;

Nova Backend

事件和时间段具有多对多的关系。

它们是如此相关;

App / TimeSlot.php

public function events()
{
    return $this->belongsToMany('App\Event');
}

App / Event.php

public function timeSlots()
{
    return $this->belongsToMany('App\TimeSlot');
}

我对于每种型号都有Nova的资源和政策。

在我的时隙政策中,更新设置为返回false。

App / Nova / Policies / TimeSlotPolicy.php

/**
 * Determine whether the user can update the time slot.
 *
 * @param  \App\User  $user
 * @param  \App\TimeSlot  $timeSlot
 * @return mixed
 */
public function update(User $user, TimeSlot $timeSlot)
{
    return false;
}

并且在我的事件策略中,attachAnyTimeSlot和detachTimeSlot都设置为返回false;

App / Nova / Policies / EventPolicy.php

/**
 * Determine whether the user can attach a time slot to an event.
 *
 * @param  \App\User  $user
 * @param  \App\Event $event
 * @return mixed
 */
public function attachAnyTimeSlot(User $user, Event $event)
{
   return false;
}

/**
 * Determine whether the user can detach a time slot from an event.
 *
 * @param  \App\User  $user
 * @param  \App\Event $event
 * @param  \App\TimeSlot $timeSlot
 * @return mixed
*/
public function detachTimeSlot(User $user, Event $event, TimeSlot $timeSlot)
{
    return false;
}

后者摆脱了垃圾箱图标,该图标可以分离关联的资源。

似乎没有什么可以摆脱编辑图标的。

当我单击它时,我什么也不能做。

Nova Backend 2

出于明显的原因,我根本不希望它出现。

有人知道如何删除它吗?

1 个答案:

答案 0 :(得分:2)

在您的EventPolicy中定义

public function attachTimeSlot(User $user, Event $event, TimeSlot $timeSlot)
{
   return ! $event->timeslots->contains($timeslot);
}

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