【问题标题】:Typo3 extbase: change record pid programmaticallyTypo3 extbase:以编程方式更改记录 pid
【发布时间】:2014-05-09 14:33:16
【问题描述】:

我有一个 NewsRepository 和一个 News 模型。 storagePid 为 74。 我有一个脚本来检查新记录的结束时间字段是否过期。如果是,我想将记录移动到另一个文件夹(UID 170)中。

当我这样做时:

$news = $newsRepository->findByUid( 1 );
$news->setTitle( 'News ' . rand(1,99999) );
$news->setPid( 170 );
$newsRepository->update( $news );

标题已更改,但 PID 未更改。

那么,我怎样才能将新的移动到另一个页面上呢?

【问题讨论】:

    标签: typo3 parent record move extbase


    【解决方案1】:

    您需要将 pid 添加到 TCA。

    这是正确的方式,所以不会显示在后端。

    'pid' => array(
        'config' => array(
            'type' => 'passthrough',
        )
    ),
    

    【讨论】:

    • 您好@user3655829 和@cili,您能否指点我一个资源或解释一下为什么需要TCA 才能使用setPid()?非常感谢!
    • 您可以在通用 TCA 定义和文档中找到这一点。你很需要这个,因为如果你不配置它,typo3 不会知道表格列。没有魔法。 TCA == 表定义数组。所以在这里你配置你在数据库中找到的所有字段。事件 pid 和 uid 字段。
    【解决方案2】:

    看起来 pid 文件也应该在 TCA 中设置。 我加了

    'pid' => Array(
        'exclude' => 1,
        'label' => 'PID',
        'config' => array(
            'type' => 'none',
        )
    ),
    

    在 TCA 的 columns 部分中,现在 PID 已保存。

    【讨论】:

      猜你喜欢
      • 2017-03-25
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 2016-08-14
      相关资源
      最近更新 更多