问题
I installed this bundle and followed the tutorial step by step:
https://omines.github.io/datatables-bundle/#introduction
My Controller:
<?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]);
}
}
But I get the error message:
You have requested a non-existent service "Omines\DataTablesBundle\DataTableFactory".
I suppose that there is something missing in the services.yaml file. But in the tutorial they do not say something about it. So maybe it is another reason.
回答1:
That service appears to be defined in the services.xml, itself pulled in by the bundle configuration, and that happens when the bundle is registered in the AppKernel class.
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;
}
// ...
}
回答2:
You can add the following line to the return in config/bundles.php. AppKernel doesn't exist in version 4.
return [
... all other bundles
Omines\DataTablesBundle\DataTablesBundle::class => ['all' => true]
];
来源:https://stackoverflow.com/questions/51303702/how-can-i-configure-a-non-existent-service-in-symfony-4