您好我是laravel的新手,并尝试建立一对多的关系,我试图从客户获取客户名称,order_no与订单表中的客户名称,这里是代码
//--customer Model
class customer extends Model {
public function order(){
return $this->hasMany('App\order');
}
}
//-- order Model
class order extends Model {
public function customer(){
return $this->belongsTo('App\customer');
}
}
//--controller
public function searchRecord(){
$customer = customer::all();
return view('orders.searchRecord')->with('customer', $customer);
}
//--View
@foreach($customer as $customer)
{{$customer->customer_name}}<br />
@endforeach
当我使用{{$customer->customer_name}}
时,它会打印所有客户名称,但是当我使用{{$customer->order}}
时,它会打印订单表的整个json,但是如果我{{$customer->order->order_no}}
它会给出错误未定义的属性$ order_no。
答案 0 :(得分:0)
您已将客户 - >订单关系定义为一对多,这意味着单个客户可以拥有多个订单。因此,当您访问 $ customer-&gt;订单时,您正在访问存储所有客户订单的集合对象,而不是单个订单。 集合类中没有 order_no 属性,这就是您收到错误的原因。
访问订单的一种方法,您需要遍历集合:
foreach ($customer->order as $order) {
echo $order->order_no;
}