在Symfony中访问数据库连接数据

时间:2014-06-10 15:49:48

标签: php mysql ajax symfony

我在Symfony有点新,我遇到了这个问题。我想访问数据库连接数据,在 app / config / parameters.yml 中,这是一个位于 src / Myproject / MyBundle / Resources / public / query.php <的php文件/ strong>即可。这只是为了运行查询。如果我运行此代码它的工作原理,但我想要更安全的东西。

$link = mysql_connect('localhost', 'root', '');
if (!$link) {
   die('Not connected : ' . mysql_error());
}

$db_selected = mysql_select_db('database2', $link);
if (!$db_selected) {
   die ('Can\'t use foo : ' . mysql_error());
}

1 个答案:

答案 0 :(得分:1)

你需要的是在你的控制器中为你的Ajax url创建一个路由和适当的动作,然后你不需要在Resources文件夹中创建php文件

1)为您的Ajax生成路由

mybundle_ajaxrequest:
   pattern: /ajaxcheck
   defaults: { _controller: myBundle:Default:ajaxCheck }

2)在默认控制器中创建一个正确的操作,并将所有后端代码放在

public function ajaxCheckAction() {
   $host_name = $this->container->getParameter('database_host');
   // do any logic you need here
   $response = new Response();
   $response->header->set('Content-Type', 'application/json');
   $response->setContent(json_encode(array('host' => $host_name))); //return whatever you need
   return $response;
}

3)在jQuery请求中,您需要将url设置为生成的路由

$(document).ready(function(){ 
   // ajax setup 
   $.ajaxSetup({ 
      url: '{{ path('mybundle_ajaxrequest') }}', 
      type: 'POST', 
      cache: 'false' 
   });
});

现在,您将能够在jQuery ajax中处理返回的json响应 请记住,您的jQuery应该位于模板文件(twig模板文件)