我的目标。 我有 3 个 Laravel 模型:user、campaign和campaign_players。我想获取有关用户的信息,以及他/她正在玩的活动。
问题。 当我运行此查询时:
$campaigns = user::with(['campaigns_playing'])->where('id', $id)->get();
它给了我这个信息:
“未找到基表或视图:1146 表 'sagohamnen.campaign_players' 不存在(SQL:选择 .
sh_campaigns
*campaign_players
、.user_id
aspivot_user_id
、 .as from inner join on . = . where .in ( 2))”campaign_players
id
pivot_id
sh_campaigns
campaign_players
sh_campaigns
id
campaign_players
id
campaign_players
user_id
由于某种原因,它看起来找不到表名。你们知道导致问题的原因以及如何解决吗?
这是我的模型和它的数据库表中的简短代码片段。
用户
protected $table = 'sh_users';
public function campaigns_playing()
{
return $this->belongsToMany('Sagohamnen\campaign\campaign', 'Sagohamnen\campaign\campaign_players', 'user_id', 'id');
}
Schema::create('sh_users', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->string('name', 255);
});
活动
protected $table = 'sh_campaigns';
Schema::create('sh_campaigns', function (Blueprint $table) {
$table->increments('id')->unsigned();
$table->string('name', 255);
$table->timestamps();
});
Campaign_players
protected $table = 'sh_campaign_players';
Schema::create('sh_campaign_players', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->integer('campaign_id')->unsigned();
$table->date('date');
$table->primary(['user_id', 'campaign_id']);
});