Как я могу настроить несуществующий сервис в Symfony 4?

Я установил этот пакет и следовал инструкциям шаг за шагом:

https://omines.github.io/datatables-bundle/#introduction

Мой контроллер:

<?php

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Omines\DataTablesBundle\Adapter\ArrayAdapter;
use Omines\DataTablesBundle\Column\TextColumn;
use Omines\DataTablesBundle\Controller\DataTablesTrait;


class DataTableController extends Controller
{

/**
* @Route("/")
*/

use DataTablesTrait;

public function showAction(Request $request)
{
$table = $this->createDataTable()
->add('firstName', TextColumn::class)
->add('lastName', TextColumn::class)
->createAdapter(ArrayAdapter::class, [
['firstName' => 'Donald', 'lastName' => 'Trump'],
['firstName' => 'Barack', 'lastName' => 'Obama'],
])
->handleRequest($request);

if ($table->isCallback()) {
return $table->getResponse();
}

$this->render('list.html.twig', ['datatable' => $table]);
}
}

Но я получаю сообщение об ошибке:

Вы запросили несуществующую услугу
«Omines \ DataTablesBundle \ DataTableFactory».

Я предполагаю, что в файле services.yaml чего-то не хватает. Но в уроке они ничего не говорят об этом. Так что, возможно, это еще одна причина.

0

Решение

Эта служба, по-видимому, определена в services.xml, сама извлекаемая конфигурацией пакета, и это происходит, когда пакет регистрируется в классе AppKernel.

class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
// ....

new \Omines\DataTablesBundle\DataTablesBundle(),

// ... other bundle registration
);

if (in_array($this->getEnvironment(), array('dev', 'test'))) {
// ...
}

return $bundles;
}

// ...
}
1

Другие решения

Других решений пока нет …