使用外键访问Laravel中的3个表(Laravel 6)
我想显示来自特定用户的数据库(sql)的数据 我有三张桌子: 使用者 商店 区域 以下是表之间的关系: 用户只有一个区域 这个地区有许多商店 基本上我想展示的是,每个用户都有自己的区域,有很多商店 用户模型使用外键访问Laravel中的3个表(Laravel 6),laravel,eloquent,Laravel,Eloquent,我想显示来自特定用户的数据库(sql)的数据 我有三张桌子: 使用者 商店 区域 以下是表之间的关系: 用户只有一个区域 这个地区有许多商店 基本上我想展示的是,每个用户都有自己的区域,有很多商店 用户模型 function area() { return $this->hasOne('App\Area'); } public function stores() { return $this->hasManyThrough(Store::class,
function area() {
return $this->hasOne('App\Area');
}
public function stores()
{
return $this->hasManyThrough(Store::class, Area::class);
}
面积模型
function user() {
return $this->belongsTo('App\User');
}
function stores() {
return $this->hasMany('App\Store');
}
商店模式
function area() {
return $this->belongsTo('App\Area');
}
我的数据库如下所示:
用户表id名称角色\u id区域\u id 面积表
id名称用户\u id 存储表
id名称区域\u id 如何访问用户->区域->商店 这就是我目前得到的
function show() {
$id= Auth::user()->id;
$user = User::find($id);
echo($user->area->stores);
}
谢谢您可以使用
hasManyThrough
获取某个区域的信息:
在用户模型中定义存储功能
function area() {
return $this->hasOne('App\Area');
}
public function stores()
{
return $this->hasManyThrough(Store::class, Area::class);
}
并使用它:
$stores = auth()->user()->stores;
我希望有用。用户表不应包含表区域的引用,即用户表中的area_id列。其余的都很好,应该可以工作。问题是什么?你是在做刀片还是api设计?定义“想展示”嗨,谢谢你的提问。用户表中没有区域id是正确的。通过使用hasManythrough关系,我终于成功了。谢谢你,上帝保佑。嗨,谢谢你抽出时间来帮忙。我只是尝试了一下,终于成功了。上帝保佑。