Php 无法在能言善辩的laravel 5.1中建立许多关系

Php 无法在能言善辩的laravel 5.1中建立许多关系,php,laravel,laravel-5,eloquent,laravel-5.1,Php,Laravel,Laravel 5,Eloquent,Laravel 5.1,您好,我是拉雷维尔的新手,尝试建立一对多关系,我尝试从客户处获取客户名称,并根据订单表中的客户名称获取订单号,以下是代码 //--customer Model class customer extends Model { public function order(){ return $this->hasMany('App\order'); } } //-- order Model class order extends Model { public functio

您好,我是拉雷维尔的新手,尝试建立一对多关系,我尝试从客户处获取客户名称,并根据订单表中的客户名称获取订单号,以下是代码

//--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
/--客户模型
类客户扩展模型{
公共职能令(){
返回$this->hasMany('App\order');
}
}
//--订单模型
类顺序扩展模型{
公共功能客户(){
返回$this->belongsTo('App\customer');
}
}
//--控制器
公共功能搜索记录(){
$customer=customer::all();
返回视图('orders.searchRecord')->带有('customer',$customer);
}
//--看法
@foreach($customer作为$customer)
{{$customer->customer_name}}
@endforeach

当我使用
{{$customer->customer{u name}}
时,它可以很好地打印所有客户名称,但是当我使用
{{$customer->order}}
时,它会打印订单表的整个json,但是如果我使用
{$customer->order->order{no}
它给出错误未定义属性$order\u no。

您已将客户->订单关系定义为一对多,这意味着单个客户可以有多个订单。因此,当您访问$customer->order时,您正在访问一个集合对象,该对象存储所有客户的订单,而不是单个订单。Collection类中没有order\u no属性,这就是出现错误的原因

访问双订单的一种方法是,您需要遍历集合:

foreach ($customer->order as $order) {
  echo $order->order_no;
}

所以我应该在侧边foreach中做foreach循环?我不知道你想在那里显示什么。但是,如果您想遍历所有客户及其订单,则需要一个嵌套的foreach