我在Symfony上全新,所以我遵循了一个教程,我现在正在寻找我的问题的答案。
我创建了一项服务。但是当我在控制器中调用它时,Chrome会说:ERR_CONNECTION_RESET。 当我删除调用它的行时,它没有任何问题。
这是我在控制器中的代码:
<?php
namespace CoreBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
class DefaultController extends Controller {
public function indexAction() {
$listAdverts = $this->$container->get('databaseinfos.listannonces'); /*DOES NOT WORK*/
return $this->render('CoreBundle:Default:index.html.twig',array('listAdverts'=>$listAdverts));
}
}
我的services.yml文件的代码:
services:
databaseinfos.listannonces:
class: CoreBundle\DatabaseInfos
我的服务代码:
<?php
namespace CoreBundle\DatabaseInfos;
class DatabaseInfos
{
public function getList(){
// Notre liste d'annonce en dur
$listAdverts = array(
array(
'title' => 'Recherche développpeur Symfony',
'id' => 1,
'author' => 'Alexandre',
'content' => 'Nous recherchons un développeur Symfony débutant sur Lyon. Blabla…',
'date' => new \Datetime()),
array(
'title' => 'Mission de webmaster',
'id' => 2,
'author' => 'Hugo',
'content' => 'Nous recherchons un webmaster capable de maintenir notre site internet. Blabla…',
'date' => new \Datetime()),
array(
'title' => 'Offre de stage webdesigner',
'id' => 3,
'author' => 'Mathieu',
'content' => 'Nous proposons un poste pour webdesigner. Blabla…',
'date' => new \Datetime())
);
return $listAdverts;
}
}
这里是控制器调用的模板:
{% extends "CoreBundle::layout.html.twig" %}
{% block title %}
Accueil principale - {{ parent() }}
{% endblock %}
{% block body %}
<h1>Page d'accueil du super site d'annonces !</h1>
<ul>
{% for advert in listAdverts %}
<li>
<a href="{{ path('oc_platform_view', {'id': advert.id}) }}">
{{ advert.title }}
</a>
par {{ advert.author }},
le {{ advert.date|date('d/m/Y') }}
</li>
{% else %}
<li>Pas (encore !) d'annonces</li>
{% endfor %}
</ul>
{% endblock %}
感谢您的时间和答案! 祝你有个美好的一天=)
答案 0 :(得分:1)
我发现为什么它不起作用:
我在我的services.yml
声明了
services:
databaseinfos.listannonces:
class: CoreBundle\DatabaseInfos
但DatabaseInfos.php
文件位于CoreBundle/DatabaseInfos/DatabaseInfos.php
所以services.yml文件应该是这样的:
services:
databaseinfos.listannonces:
class: CoreBundle\DatabaseInfos\DatabaseInfos
获取列表的命令(DatabaseInfos.php中类的方法getList()
)是:$this->container->get('databaseinfos')->getList()