我已经配置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: ~
在我的测试中,我的数据库中有三个标签:tag1
, tag2
, new tag
. 我的实体看起来像:
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
时,里面有对象。