gpt4 book ai didi

database - 在没有任何过滤器的情况下搜索实体的原则

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:37 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以在不应用任何过滤器的情况下搜索实体。例如,我想在我的模板中构建一个文本文件,其中一个 ajax post 方法正在调用一个 Controller ,目的是搜索整个实体。

我的代码:

$user = $this->getDoctrine()
->getRepository('AppBundle:QCE_SUBD')
->find('%'.$SearchParam.'%')
->getQuery();


$DSUB = $user->getArrayResult();

dump($DSUB);

我不确定该函数应该如何编写,所以如果有人愿意提供帮助,我将不胜感激 :)

最佳答案

您应该只创建一个返回 JsonResponse 和结果数组的函数。

// In your controller

/**
* @Route("/ajax_action")
*/
public function ajaxAction(Request $request)
{
// Get the posted parameter from your ajax call
$searchParam = $request->get('searchParam');

// Request your entity
$user = $this->getDoctrine()
->getRepository('AppBundle:QCE_SUBD')
->createQueryBuilder('q')
->where('q.username LIKE :searchParam')
->orWhere('q.otherColumn LIKE :searchParam')
->setParameter('searchParam', '%'.$searchParam.'%')
->getQuery();

// Check if it's an ajax call
if ($request->isXMLHttpRequest()) {
return new JsonResponse($user->getArrayResult();
}

// Return an error
throw new \Exception('Wrong call!');
}

对于搜索部分,您需要实现一个全文搜索,这里有一个关于如何实现它的教程: http://ourcodeworld.com/articles/read/90/how-to-implement-fulltext-search-mysql-with-doctrine-and-symfony-3

P.S : 你应该确定你在查询中需要什么。如果您希望它具有可扩展性,您应该看看更好的搜索引擎方法,如 ElasticSearch 或 Solr。

关于database - 在没有任何过滤器的情况下搜索实体的原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41440849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com