我是Symfony的新手,并且遇到了这个问题。我想访问数据库连接数据,位于app / config / parameters.yml中,这是一个php文件,位于src / Myproject / MyBundle / Resources / public / query.php中。这只是运行查询。如果我运行此代码,则可以运行,但是我想要更安全的东西。

$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());
}

最佳答案

您需要的是在控制器中为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应该在模板文件(树枝模板文件)中

09-06 01:29
查看更多