0

如果用户将条目保存在后端视图中,我编写了一个脚本,它将一个 contao-catalog 项目导出为 PDF。

我的问题是,在模板中有这样的代码,如果我打印出即变量$entry['data']['link_img']['ref']。:

a:3:{i:0;s:2:"14";i:1;s:2:"15";i:2;s:2:"13";} (一个序列化的Array,与foreach规范不匹配)

php 代码如下所示:

<?php foreach ($entry['data']['link_img']['ref'] as $link_img):?>
    <? print($link_img); ?>
        <a href="werke-detail/items/<?php echo $link_img['alias']; ?>.html">
    <?php echo $link_img['title']; ?> </a><br />
<?php endforeach; ?>

当 contao 解析模板时,这是有效的,如果我得到数据,它不会。我可以使用 contao 的功能来解码它,让我的 foreach 工作吗?

更新

最大的问题是:Contao 在模板引擎中的魔力在哪里,我怎样才能做到这一点?

谢谢

4

1 回答 1

0

扩展Pekka给出的评论。Contao 将某些数据类型存储为序列化的 PHP 数组。

通常在后端存储的任何字段如下:

$GLOBALS['TL_DCA']['tl_dca']['fields']['yourfield']['eval']['multiple'] = true;

将该数据存储为序列化,一些内置类(例如 User )将反序列化此类数据,即,如果您使用的是 $this->User 。

另外,请注意,所有序列化数组都存储在数据库中的 BLOB 类型中,因此给定模块的 database.sql 可以为您提供有关某些内容是否采用该格式的线索。

serialize/unserialize 函数存储在 system/functions.php 中,其中包含一些其他有用的 PHP 函数。

于 2012-02-14T12:47:27.607 回答