gpt4 book ai didi

php - Laravel Eloquent 多重连接

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:31 28 4
gpt4 key购买 nike

我正在尝试从数据库中加载所有商店,包括商店地址和城市详细信息。

商店

  • 店铺编号
  • 姓名
  • 描述

商店地址

  • 店铺编号
  • 街道
  • 压缩
  • 城市编号

城市

  • 城市编号
  • 姓名

我已经设法加载所有商店的地址,但我在按城市 ID 加载城市名称时遇到问题。

这是我目前得到的:

{
"store_id":1,
"name":"Store Name",
"description":"Store description",
"created_at":"-0001-11-30 00:00:00",
"updated_at":"-0001-11-30 00:00:00",
"address":{
"store_id":1,
"street":"Street name",
"zip":00000,
"city_id":1
}
}

我的代码:

$stores = Store::with('address')->get();

class Store extends Eloquent
{

protected $table = 'stores';
protected $primaryKey = 'store_id';

public function address(){
return $this->hasOne('StoreAddress', 'store_id');
}
}

class StoreAddress extends Eloquent
{

protected $table = 'store_address';
protected $primaryKey = 'store_id';

}

所以我只需要通过 city_id 从城市表中获取城市名称,我找不到这方面的示例。

谢谢。

最佳答案

您应该在 StoreAddress 模型中创建 belongsTo 城市关系。

你需要这样的东西:

class StoreAddress extends Eloquent
{

protected $table = 'store_address';
protected $primaryKey = 'store_id';

public function city()
{
return $this->belongsTo('City', 'city_id');
}

}

当然,您需要为城市创建一个模型(如果您还没有创建的话)。

关于php - Laravel Eloquent 多重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502035/

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