我正在用laravel5.5aç做我的第一个项目,现在我正在 Build 模型和关系
我的项目包括一个视频游戏的社交网络 .
我想要涉及的两个模型如下,它将是多对多关系:
游戏类型:
class Genero extends Model
{
protected $primaryKey = "cod";
public $incrementing = true;
protected $keyType = "int";
protected $table = "generos";
protected $fillable = ["cod","nombre"];
//public $timestamps = false;
public function juegos(){
return $this->belongsToMany('App\Juego',"juegosGeneros","codGenero","codJuego");
}
}
和游戏
class Juego extends Model
{
protected $primaryKey = "codJuego";
public $incrementing = false;
protected $keyType = "int";
protected $table = "juegos";
protected $fillable = ["cod", "nombre"];
//public $timestamps = false;
public function generos(){
return $this->belongsToMany('App\Genero',"juegosGeneros","codJuego","codGenero");
}
}
我的db表是这样的:
CREATE TABLE juegos(
cod INT AUTO_INCREMENT,
nombre VARCHAR(50),
PRIMARY KEY (cod)
);
CREATE TABLE generos(
cod INT AUTO_INCREMENT,
nombre VARCHAR(50),
PRIMARY KEY (cod)
);
CREATE TABLE juegosGeneros(
codJuego INT,
codGenero INT
);
我的问题:我已经在表中插入数据并在检索它们时
<?php
$juego = \App\Juego::where("cod","1")->first();
dd($juego->generos);
?>
他们给我一个空阵
Collection {#188 ▼
#items: []
}
观察对数据库laravel的查询执行此操作:
select `generos`.*, `juegosGeneros`.`codJuego` as `pivot_codJuego`, `juegosGeneros`.`codGenero` as `pivot_codGenero`
from `generos`
inner join `juegosGeneros`
on `generos`.`cod` = `juegosGeneros`.`codGenero` where `juegosGeneros`.`codJuego` is null
我不知道这种情况的原因,我认为这是问题所在
where `juegosGeneros`.`codJuego` is null
我非常感谢你的帮助
1 回答
您设置了错误的主键: