私の3つのエンティティ(Departement、Category、Advert)を@ParamConverter経由で@ParamConverter経由で直接私のサービスに取り込むには?ParamConverterをサービスに取り込む方法
私は多くのものを試してみましたが、何も正常に動作しません...
ありがとう!
コントローラ
/**
* @Template("frontend/advertisement/show.html.twig")
* @ParamConverter("department", options={"mapping": {"slug_department": "department_slug"}})
* @ParamConverter("category", options={"mapping": {"slug_category": "slug_fr"}})
* @ParamConverter("advert", options={"mapping": {"slug_advert": "slug"}})
* @Route(
* "/{_locale}/annonces/{slug_department}/{slug_category}/{slug_advert}",
* name="advertShow",
* requirements={
* "_locale": "en|fr"
* }
*) */
public function showAction(Request $request, Department $department , Category $category , Advert $advert )
{
return [
"advert"=>$advert
];
}
Service.yml
app.breadcrumb:
class: AppBundle\Service\Breadcrumb
arguments: ['@router']
tags:
- { name: twig.extension }
- { name: request.param_converter, priority: 20 }
Service.php
namespace AppBundle\Service;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
class Breadcrumb extends \Twig_Extension implements ParamConverterInterface
{
protected $router;
public function __construct(Router $route)
{
$this->router = $router;
}
public function generate($path)
{
return ["Home", "Item 1 ", "Item 2"];
}
public function getFunctions()
{
return array(
'breadcrumb' => new \Twig_Function_Method($this, 'generate')
);
}
function supports(ParamConverter $configuration)
{
}
function apply(Request $request, ParamConverter $configuration)
{
}
public function getName()
{
return 'Breadcrumb';
}
}
既に実装され、機能しているのですか?あなたは、コントローラや 'Breadcrumb'クラスの中のparamコンバーターによって作られたオブジェクトを必要としますか? – Stepashka