3 回答
TA贡献2003条经验 获得超2个赞
好的,我已经找到了解决方案,问题出在迁移中,您必须使用对象才能索引 belongToMany 这样的关系
Index::create('stages', function (Mapping $mapping, Settings $settings) {
$mapping->text('intitule_stage');
$mapping->text('objectifs');
$mapping->text('contenu');
$mapping->object('mots_cles');
});
在您的模型中:
public function toSearchableArray()
{
return [
'intitule_stage' => $this->intitule_stage,
'objectifs' => $this->objectifs,
'contenu' => $this->contenu,
'n_stage' => $this->n_stage,
'mots_cles' => $this->motsCles()->get(),
];
}
结果现在正如预期的那样
TA贡献1805条经验 获得超9个赞
与 belontoMany 关系存在相同的问题,并且为了将关系作为嵌套对象,我做了同样的事情,但是当我尝试填充我的索引时,字段“mots_cles”保持为空,我不明白为什么。
这是迁移:
Index::create('stages', function (Mapping $mapping, Settings $settings) {
$mapping->text('intitule_stage');
$mapping->text('objectifs');
$mapping->text('contenu');
$mapping->nested('motsCles', [
'properties' => [
'mot_cle' => [
'type' => 'keyword',
],
],
]);
});
模型:
public function toSearchableArray()
{
return [
'intitule_stage' => $this->intitule_stage,
'objectifs' => $this->objectifs,
'contenu' => $this->contenu,
'n_stage' => $this->n_stage,
'mots_cles' => $this->motsCles(),
];
}
public function motsCles()
{
return $this->belongsToMany(MotsCle::class);
}
TA贡献1820条经验 获得超2个赞
如果你想得到分类的“nom”,把它写在 composant Model 中
'categorie' => $this->categorie->nom ?? null,
$this->categorie() 返回关系,而不是对象。
- 3 回答
- 0 关注
- 119 浏览
添加回答
举报