拉拉维尔 5.3 关系问题


Laravel 5.3 relationship issue

class Game extends Model
{
public function regions() {
    return $this->hasMany('Region');
}
public function servers() {
    return $this->hasMany('Server');
}
}
class Region extends Model
{
public function servers() {
    return $this->belongsToMany('Server');
}
}
class Server extends Model
{
public function regions() {
    return $this->hasMany('Region');
}
}
每个游戏都有一个服务器

,每个服务器都有一个区域。我正在尝试获取所有游戏,其服务器和区域:game=Game::with('regions', 'regions.servers'(->find($id(;

我收到一个错误,即:找不到基表或视图:1146 表"region_server"不存在(SQL:选择 servers .*,region_server .region_id pivot_region_idregion_serverserver_id pivot_server_idservers内部连接region_server serversid = region_server .server_id region_server的地方.region_id 英寸 (4, 5(

我做错了什么?谢谢!

你们的关系似乎破裂了,你应该这样做:

class Game extends Model
{
    public function regions() {
        return $this->hasMany('Region');
    }
    public function servers() {
        return $this->hasMany('Server');
    }
}
class Region extends Model
{
    public function servers() {
      return $this->hasMany('Server');
    }
}
class Server extends Model
{
    public function region() {
        return $this->belongsTo('Region');
    }
}

根据上述关系,

  • 每个游戏都有许多服务器。
  • 每台服务器都属于一个区域
  • 每个区域都有许多服务器

希望这有帮助