Я попытаюсь сделать это, но мне не совсем ясно, что именно вы пытаетесь сделать, основываясь на примере кода.
Согласно документам Laravel take и предел представляется эквивалентным. https://laravel.com/docs/5.8/queries#ordering-grouping-limit-and-offset (нижняя часть этого раздела)
Как выглядит код:
Использование значения $limit_rows
с ->take()
метод в объекте построителя запросов $result_product_urls
:
# query
$result_product_urls = DB::table('product_match_unmatches')
->select('r_product_url', 'r_image_url_main')
->selectRaw('count(distinct s_product_url, r_product_url) as frequency,
GROUP_CONCAT(CONCAT(s_image_url, "&s_product_url=", s_product_url) SEPARATOR " | ") as source_products')
->groupBy('r_product_url')
->where('request_id', '=', $reqId)
->orderBy('frequency', 'DESC')
->take($limit_rows); /* <------------- limit_rows HERE */
Но затем также используется значение $dt_limit
с методом ->limit()
при установке переменной $urls
:
$recordsTotal = $result_product_urls->get()->count();
$urls = $result_product_urls->offset($start)->limit($dt_limit)->get();/*<-- dt_limit HERE */
Если вы не хотите использовать $dt_limit
в качестве ограничения, не используйте его ...? Я думаю, может быть, то, что вы пытаетесь сделать, - это запрос с ограничением набора результатов, а затем ограничение sub на это? Я не могу найти причину, чтобы хотеть сделать это, поэтому я могу что-то упустить. Я не думаю, что вы можете использовать ->take()
и ->limit()
для одного и того же запроса.
Разве это не должно достичь вашей цели?:
# query
$result_product_urls = DB::table('product_match_unmatches')
->select('r_product_url', 'r_image_url_main')
->selectRaw('count(distinct s_product_url, r_product_url) as frequency,
GROUP_CONCAT(CONCAT(s_image_url, "&s_product_url=", s_product_url) SEPARATOR " | ") as source_products')
->groupBy('r_product_url')
->where('request_id', '=', $reqId)
->orderBy('frequency', 'DESC');
/* ->take($limit_rows); remove this */
$recordsTotal = $result_product_urls->get()->count();
$urls = $result_product_urls->offset($start)
->limit($limit_rows) /* set limit to $limit_rows */
->get();
Если нет, то, возможно, вы можете уточнить.