gpt4 book ai didi

symfony - FOSElastica 为什么我的结果没有序列化?

转载 作者:行者123 更新时间:2023-11-29 02:56:56 28 4
gpt4 key购买 nike

我已经配置了 FOSElasticaBundle 如下:

fos_elastica:
clients:
default: { host: %elasticsearch_host%, port: %elasticsearch_port% }
serializer: ~
indexes:
app:
types:
tags:
serializer:
groups: [Default]
mappings:
name: ~
persistence:
driver: orm
model: AppBundle\Entity\Tag
provider: ~
listener: ~
finder: ~

为了测试,我的数据库中有三个标签:tag1tag2新标签。我的实体看起来像:

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
* Class Tag
* @package AppBundle\Entity
*
* @ORM\Entity
* @ORM\Table(name="tags")
*/
class Tag
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @var int
*/
protected $id;

/**
* @var string
* @ORM\Column(type="string")
* @Assert\NotBlank()
*/
protected $name;

我正在按如下方式搜索索引标签:

$finder = $this->container->get('fos_elastica.finder.app.tags');

$results = [];
if ($query !== null) {
$results = $finder->find("*" . $query . "*");

//$results should be serialized, but aren't

return new Response($results);
}

return new JsonResponse([
'results' => $results
]);

我的回复是:{"results":[{},{},{}]}

为什么 $results 没有序列化?当我调试 $results 时,里面有对象。

最佳答案

您不了解文档。您可以在以下文件中阅读: https://github.com/FriendsOfSymfony/FOSElasticaBundle/blob/master/Resources/doc/serializer.md

FOSElasticaBundle 支持使用 Serializer 组件将您的对象序列化为 JSON,JSON 将直接发送到 Elasticsearch 服务器。结合自动映射,这意味着类型不必映射。

FOSElasticaBundle 不返回序列化数据。它使用 serialzier 将序列化数据发送到 elasticsearch 服务器。使用序列化程序时,您不必在配置中提供映射。

关于symfony - FOSElastica 为什么我的结果没有序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34590659/

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