蛋糕PHP 2.3
在我的项目控制器的索引操作中,我有一个直接循环来显示项目:
<?php foreach ($items as $item): ?>
<tr>
<td><?php
echo $item['Item']['id'];
if($this->Session->check('validated')){
echo $this->Html->image('/img/action_delete.png',array(
'url'=>array('controller' => 'items','action'=>'markdelete',$item['Item']['id'])
));
echo $this->Html->image('/img/action_edit.png',array(
'url'=>array('controller' => 'items','action'=>'edit',$item['Item']['id'])
));
}
?>
</td>
<td><?php
echo $this->Html->link($item['Item']['item_category'], array('controller' => 'items','action'=>'index',$item['Item']['item_category']));
?>
</td>
<td>
<?php
echo $this->Html->link($item['Item']['item_title'], array('controller' => 'items', 'action' => 'view', $item['Item']['id']));
?>
</td>
<td><?php
if($item['Item']['item_photo_url'] != '') {
echo $this->Html->link('Link','/img/'.$item['Item']['item_photo_url'],array('target'=>'_blank'));
} else {
echo '---';
}
?></td>
<td><?php echo $item['Item']['item_description']; ?></td>
<td><?php echo $item['Item']['item_price']; ?></td>
</tr>
<?php endforeach; ?>
但是,我需要在页面顶部创建一个部分,在该部分中我将拥有 Items 表中 item_category 字段的链接菜单。
item_category 字段是我的 Items 表中的一个简单的 varchar 字段。我只是想将它们区分开来并作为链接输出。
我该怎么做?我应该尝试创建一个助手并将其包含在视图中吗?如果是这样,助手应该是什么样子?
我知道我会通过在帮助程序中使用模型来破坏 MVC 逻辑,但还能如何?
添加:
我只是尝试通过元素来做到这一点并且它有效,但这是合适的方式吗?
元素来源:
<?php
$cat = $this->requestAction('/items/categories');
echo __('Κατηγορίες: ');
foreach ($cat as $category) {
echo $this->Html->link($category['Item']['item_category'], array('controller' => 'items','action'=>'index',$category['Item']['item_category'])). ' | ';
}
echo $this->Html->link('Ολες', array('controller' => 'items','action'=>'index'));
?>
控制器动作:
public function Categories() {
$categories = $this->Item->find('all',array(
'fields' => array('DISTINCT item_category'),
'order' => array('item_category')
));
return $categories;
}
请求摘要:
可以说我有一个表项目,它有一个字段 item_category。该字段是 varchar 并且不是另一个表的主键。
此外,我在 Items 控制器中有一个索引操作,我只列出表中的所有项目。
我需要的是在 item_category 字段上进行选择并将其放在页面的标题上。