我是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应该在模板文件(树枝模板文件)中