我是Symfony框架的新手。我在從數據庫中提取數據時遇到一些困難。這裏是我的控制器類:Symfony變量不存在錯誤消息
class CrisisCtrl extends Controller{
public function listAction(Request $request)
{
$locations = $this->getDoctrine()->getRepository('AppBundle:Crisis')->findAll();
return $this->render(':index.html.twig', array(
'locations' => $locations
));
}
}
我按照在線教程手動輸入所有這些。當我輸入$this->
時,我試圖從建議列表中找到getDoctrine()
,但是我沒有選擇,因此我手動輸入了它們,我不確定這是否會導致任何問題,因爲顯然我的代碼現在有一些錯誤。
裏面我index.html.twig,我得到了這些:
{% extends 'base.html.twig' %}
{% block page_content %}
// all the HTML
{% endblock %}
{% block custom_javascripts %}
<!-- Custom Theme Scripts -->
<script src="...//removed code"
async defer></script>
<script>
{% for location in locations %}
var map;
function initMap() {
var myLatLng = {lat: '{{ location.latitude }}', lng: '{{ location.latitude }}' };
map = new google.maps.Map(document.getElementById('map'), {
center: myLatLng,
zoom: 10
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
}
{% endfor %}
</script>
{% endblock %}
不過,我收到錯誤消息稱variable 'locations' does not exist
和錯誤在重點介紹了在樹枝循環。我一直在研究從數據庫獲取數據的其他方式,並且所有這些方法都以相同的方式進行。
我不知道爲什麼會這樣。有任何想法嗎?提前致謝。
修訂
在我DefaultController類,我有這些:
class DefaultController extends Controller
{
/**
* @Template("AppBundle:Default:index.html.twig")
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
return array();
}
}
現在的問題是,動作不是調用CrisisCtrl類。它現在正在執行上面的功能。我不允許觸摸這個功能,因爲如果我改變它,其他功能將會發生故障。
所以在我CrisisCtrl班,之前的listAction,我添加了這些:
/**
* @Template("AppBundle:Default:index.html.twig")
* @Route("/", name="homepage")
*/
我的文件結構,例如:
和我的JavaScript嵌套在裏面的index.html 。枝條。所以我想知道我該如何指定路線?
如果您在控制器中執行'dump($ locations)'(在'return'之前),您會得到任何結果嗎?另外,您正在使用哪個版本的Symfony? – tftd
導致錯誤的確切線是什麼? @tftd是正確的,請嘗試檢查$位置中的內容 - var_dump($ locations)或至少執行count($ locations)。 –
我正在使用symphony 3.2.6。我如何檢查轉儲?對不起,我是Symfony的新手,仍然試圖熟悉它:)頁面底部有一個類似於工具欄的菜單,它顯示一個錯誤,這是我在上面提到的錯誤 – guest176969