kohana在unsuccesfull save之后更改url

时间:2014-05-14 09:35:53

标签: php url request kohana

我在页面底部有回复表单的主题节目页面(主题/节目)。 重播表单帖子以发布/添加操作。成功添加回复后,我可以在任何地方重定向。问题是当存在一些错误时,例如回复表单为空并且调用post / add。我需要转到线程/显示(使用'错误'数组)并在那里显示错误,因为我在那里有回复表。

try {$forumPost->save();
            } catch (ORM_Validation_Exception $e) {
                $errors = $e->errors('');
               //I need change url here to thread/show
            }

有可能吗?

2 个答案:

答案 0 :(得分:0)

很久以来我没有使用过Kohana,但

 $this->template->content = View::factory('thread/show')
        ->bind('errors', $errors); 

这应该是这样的。您正在为视图设置变量,变量当然可以是像您这样的错误数组。

您也可以通过这种方式将多个变量绑定到视图中

$this->template->content = View::factory('thread/show')
    ->bind('user', $user)
    ->bind('message', $message)
    ->bind('errors', $errors); 

我希望这是你真正想要的!

答案 1 :(得分:0)

您可以将错误存储在Session数组中。所以他们会坚持多个请求

try {
     $forumPost->save();
} catch (ORM_Validation_Exception $e) {
     $errors = $e->errors('');

     Session::instance()->set('thread_add_errors', $errors);
     HTTP::redirect('thread/show');
}

然后在线程显示视图

<?php if($errors = Session::instance()->get('thread_add_errors')): ?>
      // Show errors

      // Don't forget to delete the error :)
      <?php Session::instance()->delete('thread_add_errors'); ?>
<?php endif; ?>