Hallo Community,
ich müsste für eine Erweiterung von mir auf den Datenbank-Service von Contao zugreifen, den man sonst in Templates beispielsweise mit $this->import('Database') verwenden kann.
Meines Wissens nach ist dieser Weg in einem Controller einer Erweiterung so nicht möglich.
Deswegen habe ich versucht den Service: Doctrine\DBAL\Connection zu verwenden.
Beim injecten des Services aber erhalte ich einen Fehler:
Type error: Too few arguments to function Fnjs\TestExtension\Controller\BackendController::_ _construct(), 0 passed in contao4-dev/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php on line 200 and exactly 1 expected
Ich habe diesbezüglich zwei Fragen:
1. Ist es möglich in einem Controller einer Erweiterung auf den gleichen Service der Datenbank zuzugreifen, wie in Templates durch $this->import('Database') und falls ja, was müsste ich dafür tun?
2. Falls 1. nicht möglich ist, woran könnte es liegen, dass ich den DBAL\Connection Service oben nicht injecten kann?
Mein Controller sieht folgendermaßen aus:
Code:
..
..
use Doctrine\DBAL\Connection;
class BackendController extends AbstractController
{
private $_database;
public function __construct
(
Connection $_database
)
{
$this->_database = $_database;
}
Meine services.yml, die injected wird, sieht so aus:
Code:
services:
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
Fnjs\TestExtension\Controller\BackendController: ~
Lesezeichen