Zend Framework: как убрать визуализированные представления в контроллере? - PullRequest
0 голосов
/ 13 марта 2010

Я хочу сделать один из следующих наборов представлений:

  1. голова
  2. Автодиагностика $ id1
  3. фут

OR

  1. голова
  2. Автодиагностика $ id2
  3. фут

который существует.

я делаю это так:

try {
    $this->render("head");
    $this->render("body-$id1");
    $this->render("foot");
} catch (Exception $e) {
    $this->render("head");
    $this->render("body-$id2");
    $this->render("foot");  
}

, но это приводит к тому, что представление head отображается дважды, если body- $ id1 не существует.

у вас есть лучшее решение?

в другом изречении, могу ли я проверить наличие body-$id1 перед его рендерингом?

1 Ответ

1 голос
/ 13 марта 2010

Хорошо, он запустит любой допустимый скрипт в блоке try, но если он потерпит неудачу, он отобразит весь контент в блоке catch. Таким образом, вы, вероятно, хотите что-то вроде:

$this->render("head");
try {
    $this->render("body-$id1");
} catch (Exception $e) {
    $this->render("body-$id2");
}
$this->render("foot");

Я не вижу метода API, чтобы проверить, существует ли представление, но вы могли бы написать помощник контроллера, который просто получает путь к вашим сценариям представления и использует file_exists, чтобы проверить, является ли "body - {$ id1}" существует на этом пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...