码一下使用laravel-admin遇到的坑
联动选择框
当编辑时第二级联动无法自动被选择
找到vendor\encore\laravel-admin\src\Form\Field 写的 Select 文件
$script = <<<EOT
$(document).off('change', "{$this->getElementClassSelector()}");
$(document).on('change', "{$this->getElementClassSelector()}", function () {
var target = $(this).closest('.fields-group').find(".$class");
$.get("$sourceUrl",{q : this.value}, function (data) {
target.find("option").remove();
$(target).select2({
placeholder: $placeholder,
allowClear: $strAllowClear,
data: $.map(data, function (d) {
d.id = d.$idField;
d.text = d.$textField;
return d;
})
}).trigger('change');
});
});
$('{$this->getElementClassSelector()}').trigger('change'); //添加上这一句
EOT;
在接口中返回的数据中添加 selected => true 多选也是同理
public function getOption(Request $request){
$option = [
['id'=>1,'text'=>'测试1'],
['id'=>2,'text'=>'测试2','selected'=>true]
];
return $option ;
}
在控制器中获取路由上的参数
request()->route()->parameters()
自定义删除
laravel-admin删除有两种方式 按钮 和 列表的删除方式不同 使用按钮时直接在控制器中重写destroy即可,但会弹出多个提示框 将vendor\encore\laravel-admin\src下得Tree中 多余的弹框删除
toastr.success('{$trans['delete_succeeded']}'); //注释掉
使用列表的方式删除 若要重写 则要到模型中重写delete方法错误提示的方式采用抛出异常的方式
public function delete()
{
if (ModelsUnit::where('models_id',$this->id)->exists() || ModelsLevel::where('models_id',$this->id)->exists()) {
throw new \Exception('XXX');
}
parent::delete();
}
本文详细介绍了在使用laravel-admin时遇到的问题,包括联动选择框在编辑时二级选项未自动选中,以及如何在控制器中获取路由参数。针对联动选择框,解决方法是在Select字段中添加selected属性;对于自定义删除,文章讨论了laravel-admin的两种删除方式,并提供了如何避免多余提示框和重写delete方法的建议。
1926

被折叠的 条评论
为什么被折叠?



