Php with()方法中真的没有执行limit()的方法吗?(雄辩)
Php with()方法中真的没有执行limit()的方法吗?(雄辩),php,laravel,laravel-5,Php,Laravel,Laravel 5,模式模型与数据集模型有许多关系。我想用with()-方法加载数据集。它工作正常,除非我需要对每个模式下的数据集设置限制。以下代码无法按预期工作。它将数据集结果全部限制在一起,而不是按模式单独限制 $modes = $modes->with(['dataSets' => function ($query) use ($user, $count) { // Select data sets of user from each mode $query->join(
模式
模型与数据集
模型有许多关系。我想用with()
-方法加载数据集。它工作正常,除非我需要对每个模式下的数据集设置限制。以下代码无法按预期工作。它将数据集
结果全部限制在一起,而不是按模式
单独限制
$modes = $modes->with(['dataSets' => function ($query) use ($user, $count) {
// Select data sets of user from each mode
$query->join('data_set_user', 'id', '=', 'data_set_id')
->where('user_id', $user->id);
if(isset($count))
$query->limit($count);
}])->orderBy('order_value')
->get();
请查看此代码生成的查询:
SELECT * FROM `data_sets` INNER JOIN `data_set_user` on `id` = `data_set_id` where `data_sets`.`mode_id` in (?, ?, ?) and `user_id` = ? limit 5"
是否有任何方法可以使每个模式下的限制分别起作用 任何拉维方法都不可能做到这一点
有些SQL有足够的方法来解决这个问题,而其他SQL则没有,这是一个非常困难的问题
该问题已被多次提出:
最值得注意的是(最近):
任何拉威尔方法都不可能做到这一点
有些SQL有足够的方法来解决这个问题,而其他SQL则没有,这是一个非常困难的问题
该问题已被多次提出:
最值得注意的是(最近):
谢谢,我来看看!Staudenmeir,一个经常与Laravel合作的人,在SO上也很活跃,似乎解决了这个问题。我还没试过,不过你可以看看。谢谢你,我来看看!Staudenmeir,一个经常与Laravel合作的人,在SO上也很活跃,似乎解决了这个问题。我还没试过,但你可以看看