CakePHP перенаправить на другой URL из вида - PullRequest
0 голосов
/ 01 сентября 2011

Я хочу перенаправить на другой вид из view.ctp.

Предположим, что так =>

if($val == 0 ) {
  redirec to 'posts/index'
}

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

1 Ответ

1 голос
/ 01 сентября 2011

Вы делаете перенаправление в контроллере, а не в представлении. Период.
Вы можете легко выполнить ту же проверку, что и в представлении в контроллере.

Я не знаю о вашей конкретной ситуации, но я обычно использую этот шаблон:

public function view($id) {
    $post = $this->Post->find('first', array(
        'conditions' => array('Post.id' => $id, 'Post.mark' => 1)
    ));
    if (!$post) {
        $this->cakeError('error404');
        // or redirect, or show a more specific error page, or do something else
    }

    $this->set(compact('post'));
}

Таким образом, проверка, которую вам нужно сделать, обрабатывается на уровне базы данных, где бы она ни находилась, а перенаправление / ошибка обрабатывается в контроллере, где бы она ни находилась. Представление слишком поздно в цикле запроса, чтобы проверить на наличие бизнес-логики, например «действительно ли пользователю разрешено это видеть?» , работа представления заключается только в выводе информации.

...