我对symfony的理解有时并不是很好。我刚刚遇到这个问题而且我真的不确定如何在这种情况下传递一个变量,遗憾的是不知道该怎么去研究以便更好地理解我正在做的事情。
我不能在类中使用$this->getUser
,因为它(显然是?)在symfony模式之外,因此将它存储在会话中不是一种选择。
我尝试过传递变量的不同方法,但是......我认为我没有做到这一点,因为在这种情况下不清楚这种信息交换是如何工作的。
代码在这里,位于apps / frontend / lib文件夹中
public function postCompletedForm( $campaign_id, $hp_affiliate_id, $params = array(), &$response )
{
$params[ 'ip_address' ] = $_SERVER[ 'REMOTE_ADDR' ];
if ( isset( $ip_override )) //this is what I need to pass in
{
$params[ 'ip_address' ] = $ip_override;
}
$params[ '__timestamp' ] = date( 'Y-m-d H:i:s' );
$response = $this->sfWebBrowser->post( $this->api_endpoint . 'post/' . $campaign_id . '/' . $hp_affiliate_id . '/', $params )->getResponseText();
return ( preg_match( '/(1<\/SUCCESS>)/', $response ) ) ? true : false;
}
它也被前端模块中的动作使用。这根本不是一件大事,我知道答案很简单。我只是不确定要找什么,因为我所知道的php和框架让我失望。
感谢您的帮助!如果这是一个荒谬的问题,我道歉。有些方面的PHP我几乎没有触及,虽然它很奇怪。
答案 0 :(得分:2)
如果您知道此代码仅在前端应用程序中执行,您始终可以通过以下方式访问您的用户类(以及其他各种类似的方式):
sfContext::getInstance()->getUser();