如何确定我需要在Symfony 4中添加哪个use语句?

时间:2018-07-06 09:54:26

标签: php namespaces

我创建了一个Controller并将其命名为DataTableController类。但是现在我收到一条错误消息

  

InvalidArgumentException

     

无法确定控制器参数   “ App \ Controller \ DataTableController :: usersAction()”:$ request   参数通过不存在的类或接口进行类型提示:   “ App \ Controller \ Request”。您忘记添加使用声明了吗?

如何找出需要添加的使用说明?

<?php

namespace App\Controller;

use DataTables\DataTablesInterface;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;

/**
*
* @Route("/users", name="users")
*
* @param Request $request
* @param DataTablesInterface $datatables
* @return JsonResponse
*/

class DataTableController extends Controller
{

  const ID = 'users';

  public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
  {
    try {
      // Tell the DataTables service to process the request,
      // specifying ID of the required handler.
      $results = $datatables->handle($request, 'users');

      return $this->json($results);
    }
    catch (HttpException $e) {
      // In fact the line below returns 400 HTTP status code.
      // The message contains the error description.
      return $this->json($e->getMessage(), $e->getStatusCode());
    }
  }

}

2 个答案:

答案 0 :(得分:3)

缺少 ngOnInit() { this.result= this.books.filter( book => book.store_id === this.store.id); }

use

use Symfony\Component\HttpFoundation\Request; JsonResponse也可能丢失。使用您的IDE自动完成功能导入这些类

答案 1 :(得分:1)

我能够通过运行找到它:

php ./bin/console debug:autowiring

此外,您可以运行相同的命令,但带有--show-private标志:

php ./bin/console debug:container --show-private

我希望这会有所帮助。