我尝试在我的订单编辑页面中获取用户地址,这是它的工作原理:
这是问题:
我尝试根据存储在订单表中的用户ID在我的订单编辑页面中获取地址(这意味着只获取保存此订单的人的地址而不是所有用户)
这是我的编辑功能代码:
public function edit($id)
{
$order = Order::find($id);
$users = User::all();
$statuses = Orderstatus::all();
$addresses = Address::where($order->user_id, '=', 'user_id')->get();
return view('admin.orders.edit', compact('order', 'users', 'statuses', 'addresses'));
}
这是我得到的错误:
SQLSTATE [42S22]:找不到列:1054'where'中的未知列'5' 子句''(SQL:select * from
addresses
where5
= user_id)
这是我的刀片代码:
<div class="col-md-4">
{{ Form::label('address_id', 'Shipping Address') }}
<select class="form-control" name="address_id">
@if(!empty($order->address_id))
@foreach($addresses as $address)
<option value="{{$address->id}}" {{ $address->id == $order->address_id ? 'selected' : '' }}>{{$address->address}}</option>
@endforeach
@else
<option value="">Select Address</option>
@foreach($addresses as $address)
<option value="{{$address->id}}">{{$address->address}}</option>
@endforeach
@endif
</select>
</div>
截图:
address table
order table
您可以在
orders
和addresses
表格中看到,我有user_id
列,我想将这两列匹配在一起得到结果。
任何想法?
答案 0 :(得分:1)
你的where
功能混乱了。
必须是:
where('user_id', '=', $order->user_id)
而不是相反。 :)
此外,如果你正在使用=
比较,你可以保留它,因为它是默认值,所以它可以是这样的:
where('user_id', $order->user_id)