如何在Symfony中使用自定义方法?

wfveoks0  于 2022-11-25  发布在  其他
关注(0)|答案(2)|浏览(165)

在我的数据仓库中,我创建了一个函数:

public function myData(){
    $data = $this->createQueryBuilder('data')
    ->leftJoin('data.fields', 'f')
    ->andWhere('f.name = :field')
    ->setParameter('field', 'company');
    $result = $data->getQuery()->execute();
  
    return $result;
}

在我的控制器中,我想使用这个函数:

class PagesController extends AbstractController
{

 public function __construct(EntityManagerInterface $em) {
    $this->em = $em;
}

/**
 * @Route("/page", name="page", methods={"POST", "GET"})
 */
public function page(Request $request)
{

$data = $this->em->getRepository('App\\Entity\\Data')->myData();

但我收到错误消息:
未定义的方法'myData'。方法名称必须以findBy、findOneBy或countBy开头!

wgx48brx

wgx48brx1#

您应该将存储库注入到控制器中:

class PagesController extends AbstractController
{

 public function __construct(private DataRepository $dataRepository) {}

/**
 * @Route("/page", name="page", methods={"POST", "GET"})
 */
public function page(Request $request)
{

$data = $this->dataRepository->myData();
23c0lvtd

23c0lvtd2#

在myData函数中,您使用的变量名为$data,但在$result中,您使用的是$qb...您应该将$data更改为$qb

相关问题