我在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());
}
答案 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模板文件)
中