Kohana ORM:验证$ _belongs_to关系是否存在

时间:2012-03-05 21:48:53

标签: php validation orm kohana

我正在尝试为我的一个ORM模型进行一些验证设置。

我有2张桌子:父母和孩子。在children表中,有一个名为“parent”的列,其值是父表中行的主ID。

我正在尝试做的是创建一个验证规则,检查父表中实际存在的父ID。

有一种简单的方法吗?

2 个答案:

答案 0 :(得分:1)

我确实提出了一个解决方案。我在我的Model类中创建了一个静态方法,它接受一个I​​D作为参数,并检查该行是否存在。

所以我的Model_Child有一个类似的规则函数:

public function rules()
{
    return array(
        'parent' => array(
            // will call Model_Parent::exists($value)
            array(array('Model_Parent', 'exists'))
        )
    );
}

然后我的Model_Parent具有以下内容:

public static function exists($id) {
    $results = DB::select('*')->from('parent')->where('id', '=', $id)->execute()->as_array();
    if(count($results) == 0)
        return FALSE;
    else
        return TRUE;
}

这对我有用。是否有更优雅或正确的解决方案?

答案 1 :(得分:0)

在MySQL中(因为这个问题标记为mysql),您可以在父表和子表之间定义外键关系,并将该问题留给系统。