2014-09-12 7 views
1

Я новичок в CakePHP и не получая никакой помощиCakePHP Несколько контроллеров в странице

У меня есть 3 различных контроллеров

1:: MenusController 
2:: CategoriesController 
3::ProductsController 

на моей домашней странице в header я палочку, чтобы показать меню, в sidebar я бы например, для отображения всех категорий и по категориям content, относящимся к категории по умолчанию.

Как я могу это сделать?

ответ

3

Вы ищете View Elements используя requestAction().

В вашем представлении будет 3 элемента, вызывающих каждый упомянутый вами контроллер.

Этот пример взят из книги:

Действие контроллера

public function index() { 
    $posts = $this->paginate(); 
    if ($this->request->is('requested')) { 
     return $posts; 
    } else { 
     $this->set('posts', $posts); 
    } 
} 

Затем, по вашему мнению, вы будете иметь что-то вроде

<h2>Latest Posts</h2> 
<?php 
    $posts = $this->requestAction(
     'posts/index/sort:created/direction:asc/limit:5' 
    ); 
?> 
<ol> 
<?php foreach ($posts as $post): ?> 
    <li><?php echo $post['Post']['title']; ?></li> 
<?php endforeach; ?> 
</ol> 
+0

Благодарим вас за отзыв. Не могли бы вы объяснить это немного больше, поскольку я новичок в Cake, действительно не могу понять этот пример. – user3733648

+1

Сначала сделайте учебник для блога и найдите методы в документации api? – burzum

+0

Да, я читаю документацию. Но теперь я не знаю, должен ли я использовать isquestAction' в Element или использовать «loadModel» в Controller. Что вы предложите? – user3733648

-1

Я думаю, что самый чистый способ обработки это создать компонент или помощник и вызвать его на вашем представлении.

http://book.cakephp.org/2.0/en/views/helpers.html

1

В CakePHP 3 этот вид сценария обрабатывается с использованием элементов View Cells. См. Документацию: http://book.cakephp.org/3.0/en/views/cells.html

View Cells позволяет виду иметь логику контроллера, чтобы генерировать данные, которые нужно визуализировать, не нарушая модель MVC.

Чтобы создать список категорий, вы можете использовать элемент со списком, не получив при этом обращения к запросу requestAction.

Смежные вопросы