gpt4 book ai didi

php - 拉维尔 : relations are not working in every ways of the request

转载 作者:行者123 更新时间:2023-11-29 01:36:34 26 4
gpt4 key购买 nike

给定两个表:

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');
}

问题:

我成功获得了OrderPackage但我无法获得 PackagesOrder 关联.这是为什么 ?

相反,我确实有相同的行为,这次是从用户那里找到所属的搜索。

当我尝试查找 Search->user 时,搜索工作正常。

我的模型结构与 User 完全相同has_many Adresses , 和 Address属于User ,这两种方式都很好。

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

php artisan tinker 中的插图:

>>> $package = App\Package::where('id', 224)->first()
=> App\Package {#800
id: 224,
parcel_id: 2,
weight: 10,
created_at: "2016-12-29 14:00:58",
updated_at: "2016-12-29 14:00:58",
order_id: 115,
}
>>> $package->order
=> App\Order {#743
id: 115,
user_id: 1,
search_id: 1,
created_at: "2016-12-29 14:00:58",
updated_at: "2016-12-29 14:00:58",
shipping_date: "2016-12-29 14:00:58",
}
>>> $order = App\Order::where('id', 115)->first()
=> App\Order {#804
id: 115,
user_id: 1,
search_id: 1,
created_at: "2016-12-29 14:00:58",
updated_at: "2016-12-29 14:00:58",
shipping_date: "2016-12-29 14:00:58",
}
>>> $order->packages
LogicException with message 'Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation'
>>> $order->packages()
=> null

最佳答案

您的 Order 模型中缺少返回声明。

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

关于php - 拉维尔 : relations are not working in every ways of the request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41380815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com