Symfony1 Symfony:切换上下文的问题

Symfony1 Symfony:切换上下文的问题,symfony1,Symfony1,我正在使用Symfony 1.2,在切换上下文时遇到一些问题 该代码运行良好: require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php'); $configuration = ProjectConfiguration::getApplicationConfiguration('account', 'prod', false); $context = sfContext::createInstance($

我正在使用Symfony 1.2,在切换上下文时遇到一些问题

该代码运行良好:

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');

$configuration = ProjectConfiguration::getApplicationConfiguration('account', 'prod', false);
$context = sfContext::createInstance($configuration, 'account-prod');

$userToLogin = PcUserPeer::retrieveByEmailAddress("myemail@example.com");
Auth::login($context->getUser(), $userToLogin, false, false);

echo "all done.";
在某些时候,需求发生了变化,我需要在使用“帐户”应用程序之前使用“公共”应用程序。
然后我改成:

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');

// {{{ new code:
$configuration = ProjectConfiguration::getApplicationConfiguration('public', 'prod', false);
sfContext::createInstance($configuration);    
// some code using the public app...
// }}}    


$configuration = ProjectConfiguration::getApplicationConfiguration('account', 'prod', false);
$context = sfContext::createInstance($configuration, 'account-prod');
// {{{ new code:
sfContext::switchTo('account-prod');
// }}}  

$userToLogin = PcUserPeer::retrieveByEmailAddress("myemail@example.com");
CustomAuth::login($context->getUser(), $userToLogin, false, false);

echo "all done.";
基本上,我增加了一个switchtocall

更改后,代码被破坏,错误消息如下:

PHP Fatal error: Call to a member function prepare() on a non-object in /var/www/html/myproj/symfony/storage/sfPDOSessionStorage.class.php on line 109
谢谢你的帮助,

Dan

如果没有回溯/更多信息,很难知道是什么触发了错误。看起来您正在使用存储在数据库中的会话,与该会话相关的查询正在失败

尝试将getApplicationConfiguration的第三个参数设置为true(这将打开调试),然后查看是否获得更多输出


猜测一下,帐户应用程序似乎正在使用PDO会话存储,无法连接到数据库或其他什么?

如果没有回溯,很难知道是什么触发了错误/更多信息。看起来您正在使用存储在数据库中的会话,与该会话相关的查询正在失败

尝试将getApplicationConfiguration的第三个参数设置为true(这将打开调试),然后查看是否获得更多输出


猜测一下,帐户应用程序似乎正在使用PDO会话存储,并且无法连接到数据库或其他什么?

Symfony正在尝试加载会话存储对象。我想您的新环境的配置有问题

检查

/apps/public/config/factories.yml

查找“存储”,并尝试找出它与其他应用程序的配置有何不同。

Symfony正在尝试加载会话存储对象。我想您的新环境的配置有问题

检查

/apps/public/config/factories.yml

查找“存储”,并尝试找出它与其他应用程序的配置有何不同。

我收到了相同的错误,一些调查最终表明Aston是正确的,我的环境被破坏了。由于这在某一点上对丹有效,他的问题可能有所不同。对于那些刚刚开始运行环境的人,请仔细检查php是否可以访问数据库。在我的例子中,php.ini被破坏,无法访问数据库。我收到了相同的错误,一些调查最终表明Aston是正确的,我的环境被破坏了。由于这在某一点上对丹有效,他的问题可能有所不同。对于那些刚刚开始运行环境的人,请仔细检查php是否可以访问数据库。在我的例子中,php.ini被破坏,无法访问数据库。