CakePHP - 使用来自其他模型的值验证字段
CakePHP - Validate a field using values from an other model
我想知道是否可以使用类似 inList()
的方法验证字段,但使用其他模型中其他字段的值:
例如,我想使用来自 MemberType
模型的 id
字段的值来验证 Member
模型的 type_id
字段。
Member
型号
<?php
class Member extends AppModel
{
public $belongsTo = array(
"MemberType" => array(
"className" => "MemberType"
)
);
public $validate = array(
"type_id" => array(
"validType" => array(
'rule' => array('inList', array('A', 'B')),
'message' => 'Choose an existing type'
)
)
);
}
MemberType
型号
<?php
class MemberType extends AppModel
{
}
尝试使用自定义验证方法验证 type_id
字段:
<?php
class Member extends AppModel
{
public $belongsTo = array(
"MemberType" => array(
"className" => "MemberType"
)
);
public $validate = array(
"type_id" => array(
"validType" => array(
'rule' => array('validMemberType'),
'message' => 'Choose an existing type'
)
)
);
public function validMemberType($check){
$types = array_keys($this->MemberType->find("list"));
return in_array($check["type_id"], $types);
}
}
我想知道是否可以使用类似 inList()
的方法验证字段,但使用其他模型中其他字段的值:
例如,我想使用来自 MemberType
模型的 id
字段的值来验证 Member
模型的 type_id
字段。
Member
型号
<?php
class Member extends AppModel
{
public $belongsTo = array(
"MemberType" => array(
"className" => "MemberType"
)
);
public $validate = array(
"type_id" => array(
"validType" => array(
'rule' => array('inList', array('A', 'B')),
'message' => 'Choose an existing type'
)
)
);
}
MemberType
型号
<?php
class MemberType extends AppModel
{
}
尝试使用自定义验证方法验证 type_id
字段:
<?php
class Member extends AppModel
{
public $belongsTo = array(
"MemberType" => array(
"className" => "MemberType"
)
);
public $validate = array(
"type_id" => array(
"validType" => array(
'rule' => array('validMemberType'),
'message' => 'Choose an existing type'
)
)
);
public function validMemberType($check){
$types = array_keys($this->MemberType->find("list"));
return in_array($check["type_id"], $types);
}
}