我正在使用zend框架上的Magento,以下代码当前输出符合条件is_read != 1', 'is_remove != 1'
的第一行。我需要修改此代码以输出与所述条件匹配的最后4个表行。我尝试了一些但没有用的东西。请帮助!
模块名/型号/资源/
public function loadLatestNotice(Mage_AdminNotification_Model_Inbox $object)
{
$adapter = $this->_getReadAdapter();
$select = $adapter->select()
->from($this->getMainTable())
->order($this->getIdFieldName() . ' DESC')
->where('is_read != 1')
->where('is_remove != 1')
->limit(1);
$data = $adapter->fetchRow($select);
if ($data) {
$object->setData($data);
}
$this->_afterLoad($object);
return $this;
}
以下是一些其他使用的代码......
模块名/型号/
public function loadLatestNotice()
{
$this->setData(array());
$this->getResource()->loadLatestNotice($this);
return $this;
}
模块名/块/
public function getLatestNotice()
{
return $this->_getHelper()
->getLatestNotice()->getTitle();
}
模板/
href="<?php echo $latestNoticeUrl ?>" onclick="this.target='_blank';"><?php echo $this->getLatestNotice() ?>
答案 0 :(得分:0)
我能够通过使用以下方法自己解决问题。
我尝试生成的第一件事是4个通知表行而不是1,是将->limit(1);
更改为->limit(4);
而将$adapter->fetchRow($select);
更改为$adapter->fetchAll($select);
。问题是,解决方案需要的不仅仅是更改这两个值。
模块名/型号/资源/
public function loadLatestNotice(Mage_AdminNotification_Model_Inbox $object)
{
$adapter = $this->_getReadAdapter();
$select = $adapter->select()
->from($this->getMainTable())
->order($this->getIdFieldName() . ' DESC')
->where('is_read != 1')
->where('is_remove != 1')
->limit(4);
$data = $adapter->fetchAll($select);
if ($data) {
$object->setData($data);
}
$this->_afterLoad($object);
return $this;
}
更改后,模板将停止输出信息,为了让模板输出新数组,您必须复制一些代码并删除块文件中的->getTitle()
行,然后更改几行代码在模板.phtml文件中如下。
模块名/块/
public function getNewFuncName()
{
return $this->_getHelper()
->getLatestNotice();
}
模板/
<?php
$notice = $this->getNewFuncName();
foreach ($notice as $item) {
foreach ($item as $value) {
echo '<div class="notemssg"><p id="notetitle" href='.$value['url'].' >'.$value['title'].'</p><p id="notedate">'.$value['date_added'].'</p></div>';
}
}
?>
更改代码以正确调用并显示数组将导致显示4个表行。代码可以修改为使用以及您希望在前端显示信息的任何方式。
希望这有助于某人!