if( $this -> request -> isAjax() ) {
$param = [ 'conf_name' => 'conf_name' , 'eng_name' => 'eng_name' , 'conf_type' => 'conf_type' , 'value' => 'value' , 'values' => 'values' ] ;
$data = $this -> buildParam( $param , 'Conf.conf_edit' ) ; $data['id'] = $list['id'] ;
// $data = $this -> buildParam( $param ) ; $data['id'] = $list['id'] ;
// $validate = new \app\common\validate\Conf;
// if ( !$validate -> scene ( 'conf_edit' ) -> check( $data ) ) { $this -> error( $validate -> getError() ) ; }
die;
$this -> getResult( model('conf') -> conf_edit( $data ) ) ;
}
protected function buildParam ( $array , $validate = false ) {
$data = [] ;
if ( is_array( $array ) ) {
foreach( $array as $item => $value ) {
$data[$item] = $this -> request-> param( $value ) ;
}
}
if ( $validate !== false ) {
$result = $this -> validate( $data , $validate ) ; if ( true !== $result ){ $this -> error( $result ) ; }
}
return $data ;
}
<?php
namespace app\common\validate;
use think\Validate;
class Conf extends Validate{
protected $rule = [
'conf_name|配置名称' => 'require|unique:conf',
'eng_name|英文名称' => 'require|unique:conf',
'conf_type|配置类型' => 'require|in:1,2,3,4,5',
'value|选择值' => 'require',
];
protected $scene = [
'conf_add' => [ ], //不写代表全部需要验证
'conf_edit' => [ ] , //不写代表全部需要验证
];
}
使用注释的代码验证器能通过修改,使用目前的代码就会报unique错误,新手求大佬解决 最佳答案
