【问题标题】:How to validate email using Kohana 3.1 ORM如何使用 Kohana 3.1 ORM 验证电子邮件
【发布时间】:2011-07-24 02:42:30
【问题描述】:

我正在使用 Kohana 3.1 框架使用 Kohana 的 ORMValidation 内置类进行简单验证。让我们看看代码...

模型中我有这些简单的规则:

public function rules()
{
  return array(
    'first_name' => array(
      array('not_empty'),
    ),
    'email' => array(
      array('not_empty'),
      array('email'),
    ),
  );
}

然后在控制器中,我尝试使用经典的try ... catch 构造验证并保存对象:

try
{
    $t = array(
        'first_name'=>'pippo',
        'email'=>'foo@foo.com',
    );

    ORM::factory('customer')->values($t)->save();

}
catch ( ORM_Validation_Exception $e )
{
    die(Debug::vars($e->errors('')));
}

现在上面的 $t 数组应该验证,但它没有。相反,它会抛出异常并在调用 Debug::vars 并打印此错误时死掉:

array(1) (
    "email" => string(23) "email must not be empty"
)

这显然不是真的,我做错了什么?

【问题讨论】:

  • 我在关系方面做错了,实际上字段email 列在我尚未链接的外国相关表上..

标签: php validation kohana-3 kohana-orm


【解决方案1】:

那你有没有整理好呢?

代替:

$t = array(
  'first_name'=>'pippo',
  'email'=>'foo@foo.com',
);

ORM::factory('customer')->values($t)->save();

你为什么不试试:

$customer = ORM::factory('customer');

$customer->first_name = 'pippo';
$customer->email = 'foo@foo.com';

$customer->save();

它更简洁明了。那么你就不会对是否设置了电子邮件有任何困惑,所以你知道从哪里开始寻找其他地方。 只是一个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多