dongyanzhui0524
2018-07-12 10:48
浏览 112
已采纳

如何在Symfony 4中配置不存在的服务?

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.

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dqrb4228 2018-07-12 11:49
    已采纳

    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;
        }
    
        // ...
    }
    
    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题