讨论 技术讨论 怎么在判断唯一时 增加条件判断

怎么在判断唯一时 增加条件判断

zqiqi 发表于    阅读:173    回复:1

问题描述:

在form表单里,给 alias 字段的加唯一条件 判断时 增加判断条件 leftStatus = 1。

环境信息:

PHP版本8.1、laravel9。

复现步骤:

$form->text('alias', '别名')
    ->ruleUnique($this->modelTable)
    ->ruleRegex('/^[a-zA-Z0-9_\-]*[a-zA-Z][a-zA-Z0-9_\-]*$/')
    ->help('数字字母下划线组成,不能是纯数字,可以通过 <code>a/别名</code> 别名访问内容')
    ->repositoryFilter(function (RepositoryFilter $filter) use () {
        $filter->where(['leftStatus' => 1]);
   });

这里增加  RepositoryFilter 会报错。那这里怎么实现增加过滤条件呢


评论

目前5.x和9.x实现方式不同。可以参考一下。另外推荐放在 hookSaving 中通过代码判断。

https://laravel.com/docs/9.x/validation#rule-unique

Rule::unique('xxx')->where(fn ($query) => $query->where('leftStatus', 1))

https://laravel.com/docs/5.1/validation#rule-unique

unique:xxx,alias,NULL,id,leftStatus,1


 
1
我来评论
QQ
微信