gpt4 book ai didi

TCA 中的 Typo3 foreign_table & foreign_table_where

转载 作者:行者123 更新时间:2023-12-04 15:36:05 24 4
gpt4 key购买 nike

我正在努力解决以下问题。

我有两个数据库表,“书籍”和“类别”。我正在通过后端 ListView 中的 Sysfolder 从“书籍”表中获取所有数据,以便对其进行编辑、排序和控制。

我想得到的是,在该 ListView 中还会有该书所属类别的名称。

在“书籍”表中,有一个外键字段 "category_id"它定义了这本书所属的类别。我已经通过这个尝试过 "category_id"在书籍的 ListView 中获取类别的名称。

当我在 TCA['books'] 中定义时那个category_id喜欢:

'category_id' => array (        
'exclude' => 0,
'label' => 'Cat name',
'config' => array (
'type' => 'select',
'foreign_table' => 'category',
'foreign_table_where' => 'AND category.id=###REC_FIELD_category_id###',
'eval' => 'int',
'checkbox' => '0',
'default' => 0
)
),

它使用 category_id 连接书籍和类别(在书籍表中)和 uid (在类别表中)。

不像我想的那样,它会使用 category_id(在书籍表中)和 id(在类别表中)连接它们。此 id 是类别的 id,可以与 uid 不同。

是我做错了什么还是 Typo3 以某种方式自动与外部表建立了这种“连接” uid . ?有没有办法像我想要的那样得到它?

最佳答案

恐怕无法指定不同的外键。因此,除非有人证明我错了,否则我将使用以下解决方法。itemsProcFunc select type 允许您完全覆盖菜单中的项目,从而创建不同的关系。

  • 创建一个仅在后端加载的额外类,该类将具有将在 itemsProcFunc 中调用的方法。 :yourMethod($PA, $fobj)
  • 使方法在 SELECT 框中加载您想要的所有类别并将它们设置在 $PA['items'] 中。通过完全覆盖它,使其成为一个数组数组,其中 0 键是元素标题,1 键是您想要的类别 ID。见 items select .$PA['items'] = array(array($title, $id, ''));
  • 中包含该类ext_tables.php :if(TYPO3_MODE == 'BE') require_once(t3lib_extMgm::extPath($_EXTKEY).'class.YOUR_CLASS.php');
  • 为书籍表中的类别字段设置配置:'itemsProcFunc' => 'tx_YOUR_CLASS->yourMethod',
  • 关于TCA 中的 Typo3 foreign_table & foreign_table_where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741746/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com