通过 with relation Laravel Eloquent 查询只得到两张图片
get only two images by with relation Laravel Eloquent query
我试过使用这样的eloquent模型只得到两张图片
$data = Wedding::with(['weddingimage'=>function($q)use($req){
$q->where('is_cover',0)
->limit(2);
}])->withCount('weddingimage')
->limit(2)
->get();
但是在第一个循环中只得到两个图像意味着索引 0 而不是在下一个索引中意味着 1,2。
请帮帮我。
提前致谢
Laraval 没有内置此功能。
如果您在关系的预先加载中添加一个限制,它只会限制它找到的记录总数,所有父项 2 个,而不是每个父项 2 个,而即使是第一个父项也可能有超过 2 个图像.
但别担心,Jonas Staudenmeir 花时间开发缺少的每个父级限制,请参阅:
https://github.com/staudenmeir/eloquent-eager-limit
用法:
您需要将特征应用到您的两个模型,在您的情况下,模型可能如下所示:
class WeddingImage extends Model {
use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
}
class Wedding extends Model {
use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
public function weddingimage() {
return $this->hasMany(WeddingImage::class);
}
}
然后简单地在您的预加载查询中链接 ->limit(2)
(您似乎已经这样做了)。
我试过使用这样的eloquent模型只得到两张图片
$data = Wedding::with(['weddingimage'=>function($q)use($req){
$q->where('is_cover',0)
->limit(2);
}])->withCount('weddingimage')
->limit(2)
->get();
但是在第一个循环中只得到两个图像意味着索引 0 而不是在下一个索引中意味着 1,2。 请帮帮我。 提前致谢
Laraval 没有内置此功能。
如果您在关系的预先加载中添加一个限制,它只会限制它找到的记录总数,所有父项 2 个,而不是每个父项 2 个,而即使是第一个父项也可能有超过 2 个图像.
但别担心,Jonas Staudenmeir 花时间开发缺少的每个父级限制,请参阅: https://github.com/staudenmeir/eloquent-eager-limit
用法:
您需要将特征应用到您的两个模型,在您的情况下,模型可能如下所示:
class WeddingImage extends Model {
use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
}
class Wedding extends Model {
use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
public function weddingimage() {
return $this->hasMany(WeddingImage::class);
}
}
然后简单地在您的预加载查询中链接 ->limit(2)
(您似乎已经这样做了)。