我需要在弹性中上传,当我创建实体 Lead 时,只有状态已批准的人,这是我的,映射:
persistence:
driver: orm
model: Artel'ProfileBundle'Entity'Lead
provider:
query_builder_method: createIsActiveQueryBuilder
listener: ~
finder: ~
和我query_builder_method:createIsActiveQueryBuilder:
public function createIsActiveQueryBuilder()
{
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('ArtelProfileBundle:Lead', 'd')
->where('d.statusLead = :status')
->setParameter('status', 'approved')
;
return $qb;
}
当我运行时,我的上传潜在客户状态已获得批准
app/console fos:elastica:populate --no-reset
创建铅
$lead = new Lead();
//some logic
$manager->persist($lead);
$manager->flush();
但是当我创建默认状态为"not_approved"的新潜在客户时,该潜在客户以弹性方式上传,为什么我不理解听众上传此潜在客户,为什么不query_builder工作?
我添加到弹性配置indexable_callback并在实体类函数中创建是已发布的,当我创建新的潜在客户时,状态not_approved这个潜在客户没有在弹性中上传。非常好 - 当我更改状态"已批准"时 - 潜在客户以弹性上传,然后我更改not_approved的状态并在弹性中删除潜在客户。这是赢
public function isPublished()
{
if ($this->getStatusLead() === self::STATE_TO_BE_INDEXED_IN_ELA) {
return true;
}
return false;
}
lead:
finder: ~
types:
lead:
indexable_callback: 'isPublished'
mappings:
id:
type: integer
persistence:
driver: orm
model: Artel'ProfileBundle'Entity'Lead
provider:
query_builder_method: createIsActiveQueryBuilder
listener: ~
finder: ~