2

我正在使用 Symfony 1.4(Doctrine 1.2)中的 CMS 类型的站点,令我沮丧的一件事是无法将 HTML 页面存储在 YML 装置中。相反,如果我想删除和重建数据,我必须创建数据的 SQL 备份,当 Symfony/Doctrine 有一个非常棒的机制可以做到这一点时,这有点麻烦。

我可以编写一种机制,为每个页面读取一组 HTML 文件并以这种方式填充数据(甚至将其编写为任务)。但在我走这条路之前,我想知道是否有任何方法可以将 HTML 存储在 YML 固定装置中,以便 Doctrine 可以简单地将其导入数据库。

更新:

我尝试过使用symfony doctrine:data-dumpsymfony doctrine:data-load但是尽管转储使用 HTML 正确创建了夹具,但加载任务似乎使用 HTML“跳过”列的值并将其他所有内容输入到行中。在数据库中,该字段不显示为“NULL”,而是显示为空,因此我相信 Doctrine 将列的值添加为“”。

下面是symfony doctrine:data-dump创建的 YML 夹具的示例。我尝试过symfony doctrine:data-load针对各种形式的运行,包括删除所有转义字符(新行和引号只留下尖括号),但它仍然不起作用。

  Product_69:
    name: 'My Product'
    Developer: Developer_30
    tagline: 'Text that briefly describes the product'
    version: '2008'
    first_published: ''
    price_code: A79
    summary: ''
    box_image: ''
    description: "<div id=\"featureSlider\">\n    <ul class=\"slider\">\n        <li class=\"sliderItem\" title=\"Summary\">\n            <div class=\"feature\">\n              Some text goes in here</div>\n        </li>\n    </ul>\n  </div>\n"
    is_visible: true
4

2 回答 2

5

你可以使用下面的这种格式吗?

  Product_69:
    name: 'My Product'
    Developer: Developer_30
    tagline: 'Text that briefly describes the product'
    version: '2008'
    first_published: ''
    price_code: A79
    summary: ''
    box_image: ''
    description:   |
        <div id="featureSlider">
            <ul class="slider">
                <li class="sliderItem" title="Summary">
                    <div class="feature">Some text goes in here</div>
                </li>
            <ul>
        </div>
    is_visible: true
于 2010-04-01T11:18:35.290 回答
2

我遇到了类似的问题,我发现在数据库中存储html没有问题,但在输出html时没有问题。Symfony 似乎将带有 html 的文本输出为带有引号的字符串,以防止跨站点脚本。但是,他们有办法呈现原始文本。而是使用:

<?php echo $htmlText ?>

采用:

<?php echo $sf_data->getRaw('htmlText') ?>

你可以在 A Gentle Introduction to symfony 中找到更多相关信息:第 7 章 - 视图层内部

http://www.symfony-project.org/gentle-introduction/1_4/en/07-Inside-the-View-Layer

于 2010-07-29T20:35:34.597 回答