假设我有一个表“用户”,我想用 Laravel Scout 搜索。它有很多属性,其中包括用户的爱好。

  • 用户的爱好不直接放在users表中,
    但是通过关系表。因此,为每个用户放置了一个爱好 IDusers 表。
  • 现在,当我搜索 football, 时,Laravel 未将其编入索引
    侦察。只有爱好 football 的 id 被索引,但那是
    当然不是我想要的。

  • 任何人都知道我如何确保搜索 football 返回将足球作为爱好的用户?

    谢谢你的时间!

    最佳答案

    您可以完全控制通过 toSearchableArray() 索引的确切内容,以便您可以执行以下操作

    class User extends Model
    {
        use Searchable;
    
        // ...
    
        public function toSearchableArray()
        {
            return array_merge($this->toArray(), [
                'hobby' => $this->hobby === null ? '' : $this->hobby->name;
            ]);
        }
    
        // ...
    
        public function hobby()
        {
            return $this->belongsTo(Hobby::class);
        }
    
    }
    

    关于php - 如何结合关系数据库使用 Laravel Scout & TNTSearch?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43851679/

    10-12 12:55