Я ищу чистый способ передачи переменных в частичные представления. Рассмотрим следующий пример кода:
В моем контроллере я делаю:
$this->view->articles = $arrayWithArticles;
$this->render('articles.phtml');
В моем article.phtml представлении, которое я делаю:
foreach($this->articles as $article) {
// show article
$this->render('comments.phtml');
}
В другом контроллере я делаю:
$this->view->products = $arrayWithProducts;
$this->render('products.phtml');
В моем products.phtml представлении, которое я делаю:
foreach($this->products as $product) {
// show product
$this->render('comments.phtml');
}
Как вы можете видеть, я использую то же (частичное) представление comments.phtml для отображения комментариев о написанных статьях, а также о продуктах. «Комментарии», которые я хочу отобразить, находятся в $article->comments
и $product->reviews
. Частичное представление потребуется для их отображения.
Что бы было чистым способом передать их в частичное представление. Я действительно не хочу делать:
$this->comments = $article->comments;
$this->render('comments.phtml');
Потому что это может стать трудной задачей для отслеживания (то есть установка одинаковых переменных вида в обоих контроллерах, как в виде).
Есть ли чистое решение для передачи переменных в частичные представления?