大家好,当我做这样的事情时,有什么特别的原因
$order = Order::with(['company'])->find($id);
dd($order->company)
返回公司的价值,但是如果我做类似的事情
$order = Order::with(['company']->join('customers', 'orders.customer_id', '=', 'customers.id')->find($id);
dd($order->company)
它返回null,但是如果dd($ order)显示存在关系,而$ order-> toArray()显示存在该公司。如果我将join语句添加到查询中,我简直无法像属性一样访问它。
答案 0 :(得分:0)
您必须限制所选的列:
$order = Order::select('orders.*', 'customers.first_name', 'customers.last_name')
->join('customers', 'orders.customer_id', '=', 'customers.id')
->with('company')
->find($id):