我有兩個(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你可以創建一個答案嗎? –