记录存在于zf2 with子句中

Din*_*nga 0 php database validation zend-framework2

我的用户表包含以下列和数据.

id | 名字| IS_DELETED

##########################

1 | dinu | 1

2 | dddd | 0

我想检查未删除的用户是否存在.我该怎么做?

我在编辑用户处使用以下代码进行检查用户输出is_deleted.现在我想用is_deleted检查用户行.我使用exclude来检查当前用户ID.

$validator = new Zend\Validator\Db\RecordExists(
    array(
        'table'   => 'users',
        'field'   => 'name',
        'exclude' => array(
             'field' => 'id',
             'value' => $id
        )
    )
);

if ($validator->isValid($username)) {

}
Run Code Online (Sandbox Code Playgroud)

标准验证文档具有以下代码.但我无法使用它.

$email     = 'user@example.com';
$clause    = $db->quoteInto('email = ?', $email);
$validator = new Zend\Validator\Db\RecordExists(
    array(
        'table'   => 'users',
        'field'   => 'username',
        'exclude' => $clause
    )
);
Run Code Online (Sandbox Code Playgroud)

什么是$ db?它不是适配器.我试试看.请再帮帮我

cat*_*lhu 5

我认为ZF2 Validation Classes手册关于条款的部分已经过时了.

quoteInto() 方法在ZF2中被删除

但是,我得到基于报价的Db验证过滤器工作..

您可以将"where"表达式用作字符串,如下所示:

$clause = "id != $myid AND status != false";
Run Code Online (Sandbox Code Playgroud)

..或使用如上所述的关联数组.

然后:

        'validators' => array(
            array(
                'name'    => 'Db\NoRecordExists',
                'options' => array(
                    'adapter' => $dbAdapter,
                    'table' => $tableName,
                    'field' => $fieldName,
                    'exclude' => $clause,
                ),
            ),
        ),
Run Code Online (Sandbox Code Playgroud)