1 回答
TA贡献1775条经验 获得超8个赞
问题是 $prod_name 是一个单一的变量,你在循环中运行它。所以它只替换每次迭代并只获取最后一次迭代名称。因此,如果您想使用 $order_list 获取每个产品名称,您可以轻松地为产品表创建模型。然后创建一对一的 Order_list。例如:
https://laravel.com/docs/7.x/eloquent-relationships#one-to-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]}}
编辑:要以第二种方法打印元素,您可以使用刀片语法。首先将变量发送到 .blade 文件,例如:view('your.blade.php,compact('Order_lists','prod_name'));
//then print in .blade file
@foreach($Order_lists as $Order_list)
////other <td>s
<td>{{$prod_name[$order_list->product_id]}}</td>
@endforeach
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报