Php 使用编辑器Datatables中的其他字段值验证字段

Php 使用编辑器Datatables中的其他字段值验证字段,php,datatables,Php,Datatables,我的数据库如下: Editor::inst( $db, 'servidores' ) ->fields( Field::inst('id'), Field::inst('user_id') ->validator(Validate::required(ValidateOptions::inst() ->message('Required field!') )) ->validator(function($val, $

我的数据库如下:

Editor::inst( $db, 'servidores' )
->fields(
    Field::inst('id'),
    Field::inst('user_id')
    ->validator(Validate::required(ValidateOptions::inst()
        ->message('Required field!')
    ))
    ->validator(function($val, $data){
        $result = mysqli_query($con, "select * from table where data= ????? and user_id= '" . $val . "'");
    if (mysqli_num_rows($result) > 0){
        return false;
    }else{
        return true;
    }),
    Field::inst('date')
    ->validator(Validate::required(ValidateOptions::inst()
        ->message('Required field!')
    ))
)
->process( $_POST )
->json();
如果数据库中存在用户id和日期,我需要阻止插入,例如:

user_id | data
      1 |    1
      2 |    1
      2 |    2
      2 |    1 //wrong
我尝试验证如下:

->validator(function($val, $data){
    $result = mysqli_query($con, "select * from table where data= ????? and user_id= '" . $val . "'");
if (mysqli_num_rows($result) > 0){
    return false;
}else{
    return true;
}),

但是我无法获取要在select上使用的数据值。

请尝试以下修改的查询

  $result = mysqli_query($con, "select * from table where data= '&data' and user_id= '" . $val . "'");
解决办法是:

->validator( function ($editor, $action, $data) {
    if ( $action == Editor::ACTION_EDIT || $action == Editor::ACTION_CREATE) {
        foreach ($data['data'] as $key => $values) {
            $pkey = $editor->pkeyToArray( $key );
                $any = $editor->db()->any( 'servidores', function ($q) use ($pkey, $values) {
                    $q->where( 'cidadao_id', $values['servidores']['user_id']);
                    $q->where( 'data', $values['servidores']['data'] );
                });

                if ( $any ) {
                    return 'False';
                }
            }
        }
    }
)

我喜欢这个主意。发布问题,忽略帮助他人发布的正确代码,自己发布答案,然后接受它:哇。你这个好主意让我很开心。敬礼。