我有两个(2)班:TYPO3 extbase:获取父对象模型对象
Person模型类
<?php
class Person extends BaseDto
{
/**
* @var array|PostalAddress
*/
protected $postalAddresses = array();
/**
* @param array|PostalAddress $postalAddresses
*/
public function setPostalAddresses($postalAddresses)
{
$this->postalAddresses = $postalAddresses;
}
/**
* @return array|PostalAddress[]
*/
public function getPostalAddresses()
{
return $this->postalAddresses;
}
}
的PostalAddress模型类
<?php
class PostalAddress
{
/**
* @var string $privatePersonFirstName
*/
protected $privatePersonFirstName;
/**
* @var string $privatePersonName
*/
protected $privatePersonName;
/**
* @return string
*/
public function getPrivatePersonFirstName()
{
return $this->privatePersonFirstName;
}
/**
* @param string $privatePersonFirstName
*/
public function setPrivatePersonFirstName($privatePersonFirstName)
{
$this->privatePersonFirstName = $privatePersonFirstName;
}
/**
* @return string
*/
public function getPrivatePersonName()
{
return $this->privatePersonName;
}
/**
* @param string $privatePersonName
*/
public function setPrivatePersonName($privatePersonName)
{
$this->privatePersonName = $privatePersonName;
}
}
在控制器PostalAddressConroller
我已经有一个动作创建了编辑单个地址的表单。
我想使某些字段只有在满足某些条件时才可编辑。示例:地址上的组织字段只能在个人为私人类型,地址类型为雇主的情况下可编辑。
要实现这样的条件检查,我想在PostalAddress
模型上创建一个方法。但为此,它需要有一个引用返回到控制器内的父对象。
我想避免将所有的逻辑放在模板中,以保持模板清晰易懂。
是否支持extbase级别的反向引用?
如果我必须自己实现这样的反向引用:如何防止循环引用(例如对象序列化)?
我将不同的方式处理这个问题。这不是控制器工作恕我直言。这是一个**模板**作业。如果模板中的条件显示正确的布局(字段可编辑或不),我会使用它。之后,您必须确保没有人能够通过开发人员工具让字段可编辑。即'if($ model-> isAllowedProperty){AddFieldToResultArrOrSimilar}' – Xatenev
我同意Xatenev在这里。这属于它在模板中的区别。 – j4k3
@Xatenev你可以创建一个答案吗? –