给出两个表:
Package
--------
int id
int parcel_id
int order_id
timestamps()
Order
--------
int id
int user_id
int search_id
timestamp shipping_date
timestamps()
有一个或多个Package
个对象属于Order
,
分别有一个Order
对象有一个或多个Package
个对象。
套餐型号:
public function order() {
return $this->belongsTo('App\Order');
}
public function parcel() {
return $this->belongsTo('App\Parcel');
}
订单型号:
public function search() {
$this->belongsTo('App\Search');
}
public function user() {
$this->belongsTo('App\User');
}
public function packages() {
$this->hasMany('App\Package');
}
问题:
我成功获得Order
的{{1}},但我无法将Package
与Packages
相关联。这是为什么 ?
我确实有相反的行为,这次来自User,找到所属的搜索。
当我尝试找到Search->用户时,搜索工作正常。
我拥有与Order
has_many User
完全相同的模型结构,而Adresses
属于Address
,这在两种方式都有效。
我的猜测是因为这两个表都涉及很多键,但是我仍然将列名称赋予belongsTo / hasMany属性,如果我没记错的话,还是, Eloquent关系基于列和表名,而不是“真正的”MySQL关系(外键等)。
php artisan修补程序中的插图:
User
答案 0 :(得分:4)
您在订单模型上缺少退货声明。
public function search() {
return $this->belongsTo('App\Search');
}
public function user() {
return $this->belongsTo('App\User');
}
public function packages() {
return $this->hasMany('App\Package');
}
你回来了void
这不是一个laravel关系。 ;)