Laravel 5.3 relationship issues

问题描述:

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);Laravel 5.3 relationship issues

我得到一个错误,即:基表或视图未找到:1146表 'region_server' 不存在(SQL:选择servers *,region_serverregion_idpivot_region_idregion_serverserver_id作为pivot_server_idservers内连接。 region_serverserversid = region_serverserver_id其中region_serverregion_id在(4,5)

我在做什么错? 谢谢!

+1

'每场比赛有一个服务器,每个服务器代码有region.'嗯,你”每个游戏都有很多服务器,每个服务器都有很多区域。 – tkausl

你们的关系好像是坏了,你应该这样做是这样的:

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

根据上述关系,

  • 每场比赛有许多服务器。
  • 每个服务器所属区域
  • 每个地区都有许多服务器

希望这有助于

+0

Perfecto。你是对的!谢谢!! – user3844579

+0

@ user3844579 - 如果您发现此答案正确无误,请将其标记为已接受的答案,因为它会激励我回答如下更多问题:D,并帮助其他人快速获得适当的答案 –

+0

将在6分钟内完成,哈哈(堆栈溢出限制) – user3844579