我有一个Laravel项目与灯丝的管理面板。我有两个模型:课程和单位一门课程可以有许多单元。一个单元属于一个课程。
在CourseResource表单中,我实现了一个Wizard组件来创建Multistep表单。前两个步骤是设置/编辑课程的数据,第三个步骤是使用Repeater组件管理课程的单元。
我想实现的是一个唯一的规则,以确保创建/编辑单元与唯一的名称,但只有那些属于同一个过程。
我只知道基本的唯一规则,以确保所有注册单元之间的唯一名称值,如下所示:
TextInput::make('name')
->unique(Unit::class, 'name', ignoreRecord: true)
我只做到了这一点,这只适用于编辑上下文:
use Illuminate\Validation\Rules\Unique;
TextInput::make('name')
->unique(Unit::class, 'name', ignoreRecord: true, modifyRuleUsing: function (Unique $rule, string $context, ?Model $record) {
return $rule
->where('course_id', $record->course_id)
})
因此,我如何实现唯一的规则,以验证唯一的单位名称之间的单位谁属于同一课程只。在创建上下文中和编辑上下文中。
问候。
1条答案
按热度按时间tp5buhyn1#
你可以使用这个: