Итак, есть пара проблем с предоставленным вами кодом.
Для начала, в вашем цикле вы создаете новую коллекцию с именем 'products_name' в каждом цикле, которая продолжает перезаписывать себя.
Существует множество способов решения этой проблемы, однако, как бы я это сделал, ниже:
$promo = []; // Initialise a new array called promo
foreach ($products as $product)
{
// Append the collection to the new array
$promo[] = collect(DB::connection('tienda')
->table('ps_product_lang')
->where('id_product', $product->id_product)
->get(['name', 'id_product']));
}
Теперь у вас есть массив со всеми продуктами в коллекциях.Теперь цикл для получения этих данных должен работать.
Затем вы можете вернуть данные в представление, используя несколько методов, мой предпочтительный метод действительно compact()
, показанный ниже:
return view('promociones-products', compact('promo'));
Что compact()
сделает, это захватит любые имена переменных, упомянутые в представлении, и передаст его в представление.Этот компакт будет передавать переменную $promo
в представление.