CakePHP의 내가 정직 루프 항목을 표시하는 데 내 항목 컨트롤러의 내 index 액션에서 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; ?>
을 그러나, 페이지의 맨 위에 항목 테이블의 item_category 필드에 대한 링크 메뉴가있는 섹션을 만들어야합니다.
item_category 필드는 Items 테이블의 간단한 varchar 필드입니다. 나는 그것들을 구별하여 링크로 출력하고 싶다.
어떻게해야합니까? 헬퍼를 만들고보기에 포함시켜야합니까? 그렇다면 도우미는 어떻게 생겼을까요?
나는 헬퍼 모델을 사용하여 MVC 로직을 깨뜨릴 것이라고 생각하지만 그 밖의 방법은 무엇입니까?
ADDED는 :
난 그냥 요소를 통해 그것을 할 시도하고 작동하지만 적절한 방법이다?
요소 소스 :
<?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이며 다른 테이블의 기본 키가 아닙니다.
또한 테이블의 모든 항목을 나열하는 항목 컨트롤러에서 인덱스 작업이 있습니다.
내가 필요한 것은 item_category 필드에서 select를 고유하게 만들고 페이지의 헤더에 넣는 것입니다. 당신의 ItemsController에서
편집 후에도 원하는 작업이 명확하지 않습니다. 게시물을 두 번 읽은 후 아이디어를 얻은 것은 이미 항목 모델에 데이터가 있으므로 두 곳에서 두 번 반복해야한다는 것입니다. 별개의 데이터를 가져 오는 데 문제가 있다면 컨트롤러에서 고유 한 것으로 찾기를 실행하고 다른 변수로 전달하십시오. 그러나이 경우 아마도 DB 구조를 다시 생각하고 다른 테이블의 범주 필드를 표준화해야합니다. – user221931
@ user221931 : 너무 명확하지 않은 것에 대해 유감스럽게 생각합니다. 첫째로 나는 아주 간단한 app이기 때문에 종류를 정상화하고 싶지 않다. 내 주요 질문은 2 컨트롤러 동작에서 뷰 데이터를 가져 오는 가장 좋은 방법입니다. 당신이 내 게시물에서 볼 수 있듯이 두 번째 작업 카테고리를 사용하고 있는데 거기에 뚜렷한 부분을 만들고 있습니다. 이 동작은 요소를 공급하고 이것이 내가 어떻게 작동 하는지를 보여줍니다.이 방법이 선호되지 않는다면 나는 모른다. – e4rthdog