如何解决如何通过symfony任务的配置方法访问数据库
| 您可以通过扩展sfBaseTask
来创建symfony \“ task \”;有关更多详细信息,请参见http://www.symfony-project.org/cookbook/1_1/en/tasks。
但是,我无法在第1节中看到如何建立数据库连接。我想这样做,以便让detailedDescription
属性显示一些仅在数据库中定义的选项。
做这个的最好方式是什么?
解决方法
如果您查看symfony创建自定义任务骨架(
./symfony generate:task yourTaskName
)的方式,您将在execute函数中看到如下所示的代码:
protected function execute([..])
{
$databaseManager = new sfDatabaseManager($this->configuration);
$connection = $databaseManager->getDatabase($options[\'connection\'])->getConnection();
[..]
该代码的问题在于它使用默认配置,但是如果您知道要打开什么连接(检查your5ѭ或schema.yml
以找出名称),它应该非常容易,其代码如下所示:
protected function configure()
{
$databaseManager = new sfDatabaseManager(sfProjectConfiguration::getApplicationConfiguration(\'frontend\',\'prod\',true));
$connection = $databaseManager->getDatabase(\"the_name_of_your_connection\")->getConnection();
[..]
然后,您可以按常规方式访问模型,例如:
$myItem = Doctrine_Core::getTable(\'item\')->find(14);
echo $myItem->getId();
, 如果您使用的是Doctrine,则最好的方法是在php模型文件中定义一个方法。模型的文件位于/PROJECT/lib/model/doctrine/MODEL_NAMETable.class.php中
请谨慎使用MVC模型!
一旦有了自己的方法,调用它的方法是:Doctrine_Core::getTable(\'TABLE_NAME\')->miNewMethod($params-if-any);
希望能对您有所帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。