簡體   English   中英

無法在雄辯的laravel 5.1中建立hasMany關系

[英]not able to make hasMany relationship in eloquent laravel 5.1

嗨,我是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。

您已將客戶與訂單的關系定義為一對多 ,這意味着單個客戶可以擁有多個訂單 因此,當您訪問$ customer-> order時,您將訪問一個Collection對象,該對象存儲所有客戶的訂單,而不是單個訂單。 Collection類中沒有order_no屬性,這就是您收到錯誤的原因。

您需要遍歷集合的一種訪問單個訂單的方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM