本文整理汇总了PHP中MUtil_Model_ModelAbstract::hasItemsUsed方法的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract::hasItemsUsed方法的具体用法?PHP MUtil_Model_ModelAbstract::hasItemsUsed怎么用?PHP MUtil_Model_ModelAbstract::hasItemsUsed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MUtil_Model_ModelAbstract
的用法示例。
在下文中一共展示了MUtil_Model_ModelAbstract::hasItemsUsed方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isValid
/**
* Returns true if and only if $value meets the validation requirements
*
* If $value fails validation, then this method returns false, and
* getMessages() will return an array of messages that explain why the
* validation failed.
*
* @param mixed $value
* @param array $context
* @return boolean
* @throws \Zend_Validate_Exception If validation of $value is impossible
*/
public function isValid($value, $context = array())
{
$this->_setValue($value);
// Make sure the (optionally filtered) value is in the context
$context[reset($this->_fields)] = $value;
$filter = array();
foreach ($this->_fields as $name) {
// Return valid when not all the fields to check for are in the context
if (!isset($context[$name])) {
return true;
}
$filter[$name] = $context[$name];
}
$check = array();
$doGet = $this->_model->hasItemsUsed();
$keys = $this->_model->getKeys();
foreach ($keys as $id => $key) {
if ($doGet) {
// Make sure the item is used
$this->_model->get($key);
}
if (isset($context[$id])) {
$check[$key] = $context[$id];
} elseif (isset($context[$key])) {
$check[$key] = $context[$key];
} else {
// Not all keys are in => therefore this is a new item
$check = false;
break;
}
}
$rows = $this->_model->load($filter);
if (!$rows) {
return true;
}
if (!$check) {
// Rows where found while it is a new item
$this->_error(self::ERROR_RECORD_FOUND);
return false;
}
$count = count($check);
foreach ($rows as $row) {
// Check for return of the whole check
if (count(array_intersect_assoc($check, $row)) !== $count) {
// There exists a row with the same values but not the same keys
$this->_error(self::ERROR_RECORD_FOUND);
return false;
}
}
return true;
}