Laravel背包:如何添加';删除';每行按钮是否有条件?

Laravel背包:如何添加';删除';每行按钮是否有条件?,laravel,backpack-for-laravel,Laravel,Backpack For Laravel,我有一个可以有n个孩子的父模型 所以我只想在没有子项的情况下显示delete按钮(hasMany关系必须返回0条记录) 如何在表的每一行中显示“删除”链接(在列表操作中),但仅在条件有效时显示?使用 withCount('children') 文件: 此外,您还可以使用blade指令包装删除按钮 @can('destroy', $model) disabled @endcan 文件: AhasMany关系将在没有相关记录时返回空的集合。然后可以继续调用集合上的isEmpty(),以验证是否

我有一个可以有n个孩子的父模型

所以我只想在没有子项的情况下显示delete按钮(hasMany关系必须返回0条记录)

如何在表的每一行中显示“删除”链接(在列表操作中),但仅在条件有效时显示?

使用

withCount('children')
文件:


此外,您还可以使用blade指令包装删除按钮

@can('destroy', $model) disabled @endcan
文件:


A
hasMany
关系将在没有相关记录时返回空的
集合。然后可以继续调用集合上的
isEmpty()
,以验证是否没有子记录(子记录)

PHP中的示例:

$parents = Parent::with('children')->get();
然后在模板中,您可以执行以下操作:

@foreach($parents as $parent)
    @if($parent->children->isEmpty())
        <button>Delete</button>
    @endif
@endforeach
@foreach($parents作为$parent)
@如果($parent->children->isEmpty())
删除
@恩迪夫
@endforeach

我看到的最简单的选择是使用自定义视图来查看
删除按钮,而不是包中的按钮。根据您希望进行此更改的宽度:

A.如果您想在所有积垢上进行此操作-很简单,只需运行:

php artisan背包:发布积垢/按钮/删除
这将把文件放在您的
资源/视图/供应商/背包/积垢/按钮中,供您随意更改。在内部,当前条目可用作
$entry
,因此如果需要,可以执行类似
$entry->children()->count()
的操作。请注意,这将每行运行一次,因此,如果您在表中显示50行,您需要找到一种方法来优化它

B.如果您只想对一个CRUD执行此操作(例如,对类别执行此操作,但对产品不执行此操作),那么您可以执行相同的操作(发布按钮视图),但将按钮重命名为不同的名称,如
delete\u If\u no\u children.blade.php
,这样它就不会自动用于所有CRUD。然后,通过移除“库存”删除按钮并添加您的按钮,仅在您想要的控制器内部使用它,即在
setupListOperation()内部使用它:

//使用背包数组语法
$this->crud->removeButton('delete');
$this->crud->addButton('line'、'delete'、'view'、'crud::buttons.delete_如果没有子项,'end');
//使用BACKBACK fluent语法
CRUD::button('delete')->view('CRUD::buttons.delete_if_no_children');

很抱歉,我的问题是针对“拉拉维尔背包”的。但是谢谢你,但我的问题是专门针对“拉拉维尔背包”的。但是谢谢