Hallo Contao-Forum,
ich versuche gerade ein custom content element anzulegen, was soweit auch größtenteils funktioniert hat.
Ich habe mich dabei genau an die Anleitung gehalten: https://docs.contao.org/dev/framework/content-elements/
Nun wird mir das Content-Element bereits im Backend angezeigt und ich kann es konfigurieren.
Wenn ich es jedoch speichere erhalte ich folgenden Fehler:
Code:
The controller for URI "/contao" is not callable: Method "getResponse" on class "Agonyz\MyContaoBundle\Controller\ContentElementController" should be public and non-abstract.
Mein Controller sieht so aus:
PHP-Code:
<?php
namespace Agonyz\MyContaoBundle\Controller;
use Contao\ContentModel;
use Contao\CoreBundle\Controller\ContentElement\AbstractContentElementController;
use Contao\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ContentElementController extends AbstractContentElementController
{
protected function getResponse(Template $template, ContentModel $model, Request $request): Response
{
$template->text = $model->text;
$template->url = $model->url;
return $template->getResponse();
}
}
Mein zugehöriger Service aus der services.yml sieht so aus:
Code:
services:
_defaults:
autoconfigure: true
public: false
Agonyz\MyContaoBundle\Controller\ContentElementController:
public: true
tags:
-
name: contao.content_element
category: texts
template: ce_my_content_element
method: getResponse
type: my_content_element
Die Methode wird in der Anleitung aber explizit als protected definiert.
Ich habe diese testweise mal auf public umgeschrieben und erhalte dann einen weiteren Fehler bzgl. fehlender controller service arguments.
Wie müsste ich das hier denn richtig implementieren, damit es funktioniert?
Lesezeichen