Oneliner:
Thread.currentThread().getStackTrace()[2].getMethodName()
Обратите внимание, что вам может потребоваться заменить 2 на 1.
Вы можете достичь этого с помощью подзапроса.
$skus = ProductSku::selectRaw('COUNT(*)')
->whereColumn('product_id', 'product_list.id')
->getQuery();
$products = ProductList::select('*')
->selectSub($skus, 'skus_count')
->orderBy('skus_count', 'DESC')
->take(5)
->get();
Это было бы намного проще, если бы ProductList
имел отношения с ProductSku
. Тогда вы можете просто сделать это:
Например, в App\ProductList
вы можете получить что-то вроде этого:
public function skus()
{
return $this->hasMany(ProductSku::class);
}
.. тогда ваш запрос будет просто:
[ 112].. который выдаст тот же запрос, что и выше. Я не совсем уверен в названиях ваших моделей. Вы должны изменить это соответственно.