FuelPhp解码视图中的HTML实体

时间:2012-04-30 11:51:12

标签: php fuelphp

现在我正在使用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;
    }

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

2 个答案:

答案 0 :(得分: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;
}

希望这有帮助

答案 1 :(得分:1)

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

protected $this->auto_encode = false;

控制器中的该属性将停止编码所有指定的值。

否则,请使用:

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

这将停止编码的特定值。