首页 > 解决方案 > laravel 5 搜索相关模型

问题描述

我有两个相关的模型。

 class Girl extends Model
    {
     public function target()
        {
            //return $this->hasOne('App\Target');
            return $this->belongsToMany('App\Target', 'girl_target', 'girl_id',
                'target_id');
        }
    }

class Target extends Model
{
  public function girl()
    {
        return $this->belongsToMany('App\Girl', 'girl_target');
    }
}

如何通过相关目标 ID 找到女孩模型?

  $girls = Girl::where('banned', 0)
             ->with('target');

 $targets=$seachSettings->target()->get();
            if($targets!=null){
                foreach ($targets as $item) {
                    //     $girls->target()->array_where();
                    $girls->target()->where('girl_target','target_id',$item->id);
                }
            }

我只想从我的 $targets 数组中获取具有 id 的相关目标的模型。

标签: laravellaravel-5orm

解决方案


你需要使用whereHas()方法

$girls = Girl::whereHas('target', function ($query) use($item) {
    $query->where('id', $item->id);
})->where('banned', 0)->with('target');

推荐阅读