本文整理汇总了PHP中MUtil_Model_ModelAbstract::getKeys方法的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract::getKeys方法的具体用法?PHP MUtil_Model_ModelAbstract::getKeys怎么用?PHP MUtil_Model_ModelAbstract::getKeys使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MUtil_Model_ModelAbstract
的用法示例。
在下文中一共展示了MUtil_Model_ModelAbstract::getKeys方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}
示例2: transformLoad
/**
* The transform function performs the actual transformation of the data and is called after
* the loading of the data in the source model.
*
* @param \MUtil_Model_ModelAbstract $model The parent model
* @param array $data Nested array
* @param boolean $new True when loading a new item
* @param boolean $isPostData With post data, unselected multiOptions values are not set so should be added
* @return array Nested array containing (optionally) transformed data
*/
public function transformLoad(\MUtil_Model_ModelAbstract $model, array $data, $new = false, $isPostData = false)
{
if (!$data) {
return $data;
}
//*
$row = reset($data);
if (!$this->crossTabs) {
return $data;
}
$keys = $model->getKeys();
$keys = array_combine($keys, $keys);
$default = array_fill_keys(array_keys(array_diff_key($this->_fields, $this->excludes)), null);
$results = array();
// \MUtil_Echo::track($default);
foreach ($data as $row) {
foreach ($this->crossTabs as $crossTab) {
$name = $crossTab['pre'] . $row[$crossTab['id']];
$key = implode("\t", array_intersect_key($row, $keys));
if (!isset($results[$key])) {
$results[$key] = array_diff_key($row, $this->excludes) + $default;
}
$results[$key][$name] = $row[$crossTab['val']];
}
}
if (\MUtil_Model::$verbose) {
\MUtil_Echo::r($results, 'Transform output');
}
return $results;
}
示例3: has
/**
* Returns true if name is in the model
*
* @param string $name
* @return boolean
*/
public function has($name)
{
if ($this->model->has($name)) {
return true;
}
$modelKeys = $this->model->getKeys();
return (bool) isset($modelKeys[$name]);
}
示例4: getRequiredFields
/**
* Returns an array of the field names that are required
*
* @return array of fields sourceName => targetName
*/
public function getRequiredFields()
{
$trans = $this->getFieldsTranslations();
$keys = array_fill_keys($this->_targetModel->getKeys(), true);
$output = array();
foreach ($trans as $input => $source) {
if (isset($keys[$source])) {
$output[$input] = $source;
}
}
return $output;
}