DcatAdmin框架的radio、select使用
1. 运行环境
1). 当前使用的 Laravel 版本?
Laravel Framework 9.52.16
2). 当前使用的 php/php-fpm 版本?
PHP 版本:PHP 8.0.2 (cli)
php-fpm 版本:
3). 当前系统
Windows 10
4). 业务环境
开发环境
5). 相关软件版本
PHPStudy
//: <> (提供相关软件的版本,如 Nginx 、MySQL、MongoDB 等)
2. 问题描述?
$form->radio('status', '审核')->options([
1 => '审核通过',
2 => '驳回'
])->required()
->when(1, function (Form $form) {
$form->select('car_id', '车辆选择')->options(function () {
$demo = new Car();
// 查询所有状态为可用的车辆
$availableCars = $demo->model()
->where('status', 0)
->get()
->mapWithKeys(function ($car) {
return [$car->id => $car->id . ' - ' . $car->car_num];
})->toArray();
// 添加一个默认选项
return ['' => '请选择车辆'] + $availableCars;
})->saving(function ($value) {
// 在保存表单时,更新选定车辆的状态为1
if (!empty($value)) {
$dcar = new Car();
$car = $dcar->model()
->where('id', $value)
->first();
if ($car) {
$car->status = 1;
$car->save();
}
}
return $value;
});
})
3. 您期望得到的结果?
如图,有一个radio(审核)
我希望在选择审核通过时将下面的select(车辆选择)设置为required,在选择驳回时,则不需要选择
然而我写的这段代码在选择驳回时,无法提交,(应该是两个when都发挥作用了,导致select还是required)希望大佬们能帮我修改一下代码
可以在表单响应的saving中整体验证表单并返回报错
文档传送