【发布时间】:2016-06-02 06:43:31
【问题描述】:
我在 .ctp 上有一个表单,它有多个输入字段。这些输入字段之一是 type="email" 字段。提交时,该字段对我来说并不重要,我尝试了多种方法让该字段保持为空,但它仍然让我感到“该值已在使用”的错误。 下面是我的输入在页面中的样子,带有给定的错误:
这就是我的输入在 .ctp 中的样子:
<tr style="height:30px;">
<td style="width: 160px;"><?= 'E-mail' ?></td>
<td>
<?= $this->Form->input('email',['empty' => false, 'label' => false, 'required' => false]); ?>
</td>
<td style="width:75px;"></td>
<td class="edit_hints" style="border-bottom: 1px solid lightgrey;">Completează cu adresa de e-mail a persoanei de contact.</td>
</tr>
这就是我的 $validator 的样子:
$validator
->email('email')
->allowEmpty('email')
->requirePresence('email', false);
如您所见,我已经尝试了所有我研究过的东西,但这个问题仍然困扰着我。我在想的是,电子邮件验证器可能会在我的数据库的另一行中找到空值,它可能类似于此错误。有什么办法可以解决吗?
【问题讨论】:
-
在 db 表 email 字段中是否有 UNIQUE 索引?
-
不,它没有任何约束,也可以为NULL。 (顺便说一下,我的数据库是在 PostegreSQL 中管理的)
-
确保你的表中没有这样的 buildRules
public function buildRules(RulesChecker $rules) { $rules->add($rules->isUnique(['email'])); return $rules; } -
这就是问题所在。非常感谢!
-
@JacekBBudzyñski 请添加它作为答案,否则应该关闭问题。
标签: php html cakephp cakephp-3.0