проблема в том, что $ prod_name - это отдельная переменная, и вы запускаете ее в l oop. поэтому он заменяет только каждую итерацию и просто получает имя последней итерации. так что если вы хотите получить каждое название продукта с помощью $ order_list, вы можете легко создать модель для таблицы продуктов. затем создайте один к одному Order_list. Например:
https://laravel.com/docs/7.x/eloquent-relationships#one -в-один
class Order_list extends Model
{
public function products()
{
return $this->hasOne('App\Products',"product_id"); //your model name and path
}
}
, тогда вы можете получить все данные списка заказов с таким продуктом:
$Order_lists = Order_list::orderBy('id', 'asc')->where('user_id', '=', Auth::user()->id)->where('order_id', '=', $id)->with('products')->get();
сведения о продукте должны быть в $Order_lists[0]->products->name
отредактированы: чтобы запустить это в блейд-файле
@foreach($Order_lists as $Order_list)
////other <td>s
<td>{{$Order_list->products->name}}</td>
@endforeach
если описанный выше метод сложен, вы можете создать отдельный массив с именем
$prod_name =[];
foreach($Order_lists as $order_list)
{
$prod_name[$order_list->product_id] = DB::table("products")->where('id', $order_list->product_id)->value('name');
}
затем прочитайте его на блейд-файле следующим образом:
{{$prod_name[$order_list->product_id]}}