propel로 비즈니스 로직을 구축합니다. 추진는 프리 세이브 방법, 그 응답을 실행하는 경우Symfony2 Setter Injection works
Services.yml
parameters:
Abstract.Model : 'FooBundle\Model\AbstractModel'
services:
Abstract.Model:
class: 'FooBundle\Model\AbstractModel'
calls:
- [setSecurity, ["@security.context"]]
AbstractModel
abstract class AbstractModel extends BaseObject
{
/**
* @param $security \Symfony\Component\Security\Core\SecurityContext
*/
protected $security;
/**
* Sets the security context
*
* @param $security \Symfony\Component\Security\Core\SecurityContext
*/
public function setSecurity($security)
{
$this->security = $security;
}
/**
* Code to be run before persisting the object
*
* @param PropelPDO $con
* @return boolean
*/
public function preSave(\PropelPDO $con = null)
{
$token = $this->security->getToken();
}
}
: 모든 모델은 내가 보안 컨텍스트를 주입하고자하는 추상적 인 모델을 확장 500 :
FatalErrorException: Error: Call to a member function getToken() on a non-object
누구나 무슨 일이 일어날 지 알고 있습니까?
인사말
Update_01 :
public function save(PropelPDO $con = null, $skipReload = false)
{
...
$ret = $this->preSave($con);
}
당신이 우리에게'preSave'를 트리거 년대 * 사용자 * 코드를 게재 할 수 있습니까? – Touki
이봐, 위에서 코드 예제를 업데이트했다. 당신의 도움을 주셔서 감사합니다. –
추상 클래스를 인스턴스화 할 수 없습니다. – stwe