Laravel:关系在请求的各个方面都不起作用

时间:2016-12-29 13:33:42

标签: php mysql eloquent laravel-5.3

给出两个表:

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}},但我无法将PackagePackages相关联。这是为什么 ?

我确实有相反的行为,这次来自User,找到所属的搜索。

当我尝试找到Search->用户时,搜索工作正常。

我拥有与Order has_many User完全相同的模型结构,而Adresses属于Address,这在两种方式都有效。

我的猜测是因为这两个表都涉及很多键,但是我仍然将列名称赋予belongsTo / hasMany属性,如果我没记错的话,还是 Eloquent关系基于列和表名,而不是“真正的”MySQL关系(外键等)。

php artisan修补程序中的插图:

User

1 个答案:

答案 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关系。 ;)