本文整理汇总了PHP中MUtil_Model_ModelAbstract::getFilter方法的典型用法代码示例。如果您正苦于以下问题:PHP MUtil_Model_ModelAbstract::getFilter方法的具体用法?PHP MUtil_Model_ModelAbstract::getFilter怎么用?PHP MUtil_Model_ModelAbstract::getFilter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MUtil_Model_ModelAbstract
的用法示例。
在下文中一共展示了MUtil_Model_ModelAbstract::getFilter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: transformLoadSubModel
/**
* Function to allow overruling of transform for certain models
*
* @param \MUtil_Model_ModelAbstract $model Parent model
* @param \MUtil_Model_ModelAbstract $sub Sub model
* @param array $data The nested data rows
* @param array $join The join array
* @param string $name Name of sub model
* @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
*/
protected function transformLoadSubModel(\MUtil_Model_ModelAbstract $model, \MUtil_Model_ModelAbstract $sub, array &$data, array $join, $name, $new, $isPostData)
{
if (1 === count($join)) {
// Suimple implementation
$mkey = key($join);
$skey = reset($join);
$mfor = \MUtil_Ra::column($mkey, $data);
// \MUtil_Echo::track($mfor);
if ($new) {
$sdata = $sub->loadNew(1);
} else {
$sdata = $sub->load(array($skey => $mfor));
}
// \MUtil_Echo::track($sdata);
if ($sdata) {
$skeys = array_flip(\MUtil_Ra::column($skey, $sdata));
$empty = array_fill_keys(array_keys(reset($sdata)), null);
foreach ($data as &$mrow) {
$mfind = $mrow[$mkey];
if (isset($skeys[$mfind])) {
$mrow += $sdata[$skeys[$mfind]];
} else {
$mrow += $empty;
}
}
} else {
$empty = array_fill_keys($sub->getItemNames(), null);
foreach ($data as &$mrow) {
$mrow += $empty;
}
}
// \MUtil_Echo::track($mrow);
} else {
// Multi column implementation
$empty = array_fill_keys($sub->getItemNames(), null);
foreach ($data as &$mrow) {
$filter = $sub->getFilter();
foreach ($join as $from => $to) {
if (isset($mrow[$from])) {
$filter[$to] = $mrow[$from];
}
}
if ($new) {
$sdata = $sub->loadNew();
} else {
$sdata = $sub->loadFirst($filter);
}
if ($sdata) {
$mrow += $sdata;
} else {
$mrow += $empty;
}
// \MUtil_Echo::track($sdata, $mrow);
}
}
}
示例2: transformLoadSubModel
/**
* Function to allow overruling of transform for certain models
*
* @param \MUtil_Model_ModelAbstract $model Parent model
* @param \MUtil_Model_ModelAbstract $sub Sub model
* @param array $data The nested data rows
* @param array $join The join array
* @param string $name Name of sub model
* @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
*/
protected function transformLoadSubModel(\MUtil_Model_ModelAbstract $model, \MUtil_Model_ModelAbstract $sub, array &$data, array $join, $name, $new, $isPostData)
{
foreach ($data as $key => $row) {
// E.g. if loaded from a post
if (isset($row[$name])) {
$rows = $sub->processAfterLoad($row[$name], $new, $isPostData);
} elseif ($new) {
$rows = $sub->loadAllNew();
} else {
$filter = $sub->getFilter();
foreach ($join as $parent => $child) {
if (isset($row[$parent])) {
$filter[$child] = $row[$parent];
}
}
// If $filter is empty, treat as new
if (empty($filter)) {
$rows = $sub->loadAllNew();
} else {
$rows = $sub->load($filter);
}
}
$data[$key][$name] = $rows;
}
}