0

现在我正在使用 html_entity_decode 在我的视图中显示 HTML:

<strong>Body:</strong>
<?php echo html_entity_decode($post->body); ?></p>

但是当我将数据传递给我的视图时,还有另一种方法可以做到:

public function action_view($id = null)
    {
        $data['post'] = Model_Post::find($id);

        is_null($id) and Response::redirect('Post');

        $this->template->title = "Post";
        $this->template->content = View::forge('post/view', $data);
    }

我阅读了文档并尝试了:

public function action_view($id = null)
    {
        $data['post'] = Model_Post::find($id);

        is_null($id) and Response::redirect('Post');

        $this->template->title = "Post";
        $this->template->content = View::forge('post/view', $data);
                View::$auto_encode = false;
    }

但这只是让我“访问未声明的静态属性”。显然我做错了什么......

4

2 回答 2

3

如我所见,您没有正确设置 auto_encode 。

试试这个,看看它是否是你要找的。

public function action_view($id = null)
{
    $view = View::forge('post/view');
    is_null($id) and Response::redirect('Post');

    $post = Model_Post::find($id);
    $view->set('post', $post, false); //Here the auto_encode is set to false

    $this->template->title = "Post";
    $this->template->content = $view;
}

希望这可以帮助

于 2012-04-30T14:00:00.560 回答
1

有很多方法可以做到这一点:

protected $this->auto_encode = false;

控制器中的该属性将停止对所有分配的值进行编码。

否则,使用这个:

$this->template->set('title', "Post", false);
$this->template->set('content', $view, false);

这将停止对特定值进行编码。

于 2012-06-11T15:21:19.503 回答