【发布时间】:2018-03-06 16:26:37
【问题描述】:
我只是想用一个新的字段“page”来扩展 sys_category 表,这只是普通的 extbase 方式。像魅力一样工作,字段显示并保存在数据库中。但是我的 f:debug 在 Fluid 中没有字段。有人知道缺少什么吗?
非常感谢您的帮助!
TCA 覆盖:
$newColumns = [
'page' => [
'exclude' => true,
'label' => 'LLL:EXT:project/Resources/Private/Language/Default/locallang_db.xlf:sys_category.page',
'config' => [
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'pages',
'size' => 1,
'maxitems' => 1,
'minitems' => 0
]
],
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('sys_category', $newColumns);
// Make fields visible in the TCEforms:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
'sys_category', // Table name
'page', // Field list to add
'1', // List of specific types to add the field list to. (If empty, all type entries are affected)
'after:title' // Insert fields before (default) or after one, or replace a field
);
SQL:
#
# Table structure for table 'sys_category'
#
CREATE TABLE sys_category (
page int(11),
);
型号:
<?php
namespace <Vendorname>\Project\Domain\Model;
use TYPO3\CMS\Extbase\Utility\DebuggerUtility;
/**
* Class Category
* @package <Vendorname>\Project
*/
class Category extends \TYPO3\CMS\Extbase\Domain\Model\Category
{
/**
* @var integer
*/
protected $page = null;
/**
* Gets the page.
*
* @return integer
* @api
*/
public function getPage()
{
return $this->page;
}
/**
* Sets the page.
*
* @param integer $page
* @api
*/
public function setPage($page)
{
$this->page = $page;
}
}
排版设置:
config.tx_extbase.persistence {
storagePid = {$plugin.tx_project.persistence.storagePid}
classes {
TYPO3\CMS\Extbase\Domain\Model\Category {
subclasses {
<Vendorname>\Project\Domain\Model\Category = <Vendorname>\Project\Domain\Model\Category
}
}
<Vendorname>\Project\Domain\Model\Category {
mapping {
tableName = sys_category
}
}
}
}
【问题讨论】:
-
您找到解决问题的方法了吗?目前我想做同样的事情......
标签: typo3 extbase typo3-8.x typo3-extensions