在我的订单表中,我得到user_id
和address_id
两个列的关系是相同的,我可以从users
表中获取信息,但不能从addresses
表中获取信息!
Order
型号:
public function user() {
return $this->belongsTo(User::class);
}
public function address(){
return $this->belongsTo(Address::class, 'address_id');
}
Address
型号:
public function user(){
return $this->belongsTo(User::class);
}
public function order(){
return $this->belongsTo(Order::class);
}
user
模型(仅供比较)
public function orders(){
return $this->hasMany(Order::class);
}
public function addresses(){
return $this->hasMany(Address::class);
}
现在我可以获取用户信息,例如
{{$order->user->name}}
但无法获取我的地址信息,例如:
{{$order->address->address}}
我得到的错误:
尝试获取非对象的属性
任何想法?
Order {#878 ▼
#fillable: array:11 [▶]
#casts: array:1 [▶]
#connection: "mysql"
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:17 [▼
"id" => 17
"ordernu" => "4491084283"
"user_id" => 1
"orderstatus_id" => 7
"address_id" => 2
"payment_id" => null
"product_name" => ""[{\"id\":29,\"name\":\"effewf\",\"price\":24524,\"quantity\":1,\"attributes\":[{\"attr\":{\"label\":\"Gray\",\"price\":\"7000.00\"}},{\"attr\":{\"label\":\"Red ▶"
"product" => null
"quantity" => null
"price" => null
"note" => "xxxxxxx"
"address" => null
"phone" => "xxxxxx"
"buyer_name" => "xxxxxxxxxx"
"buyer_email" => "admin@admin.com"
"created_at" => "2018-01-22 14:39:58"
"updated_at" => "2018-01-22 14:39:58"
addresses
表
答案 0 :(得分:1)
address
模型中有Order
个属性,这就是为什么你总是得到null
的原因。这将返回属性而不是相关地址:
$order->address
因此,重命名关系以使其有效:
public function orderAddress()
{
return $this->belongsTo(Address::class, 'address_id');
}
并使用它:
{{ $order->orderAddress->address }}