laravel - 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 的相关目标的模型。
解决方案
你需要使用whereHas()
方法
$girls = Girl::whereHas('target', function ($query) use($item) {
$query->where('id', $item->id);
})->where('banned', 0)->with('target');
推荐阅读
- android - 在 Google 上获取用户个人资料信息登录 Firebase 并传递到新活动
- c++ - 如果既不调用 std::thread::detach 也不调用 std::thread::join,为什么程序会终止?
- sql - 有条件的邮寄地址重新格式化
- javascript - 在 Django 的函数视图中处理多种形式的不同表单标签
- java - 我无法在休眠中获取绑定参数值
- python - 为什么sklearn.svm.SVC.predict()的结果与sklearn.svm.SVC.predict_proba()的结果不一致?
- android - 无法使用窗口管理器屏幕更新 android 中的日间和夜间模式
- reactjs - 为什么 useSelector 不包含任何数据?
- javascript - 表单选择/HTML-选择-反应预填充/自动填充/自动填充不起作用
- css - 进度圈完成