Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel雄辩查询始终返回所有列,即使在传递id时也是如此_Laravel_Eloquent - Fatal编程技术网

Laravel雄辩查询始终返回所有列,即使在传递id时也是如此

Laravel雄辩查询始终返回所有列,即使在传递id时也是如此,laravel,eloquent,Laravel,Eloquent,我绞尽脑汁已经有一段时间了,我想不出发生这种事情的原因 基本上,我有一个充满订户列表名称的表,我需要为每个列表的详细信息页面检索一个。然而,无论我如何检索数据,它总是返回表中的每一行。我在这个模型上有两个关系,因为订阅者列表有很多用户,可能还有很多组织 以下是我当前用于尝试检索单个记录的查询: $query=SubscriberList::with($loadRelations)->where('id',$subscriberListId)->firstOrFail(); 这将返回所有行 我也

我绞尽脑汁已经有一段时间了,我想不出发生这种事情的原因

基本上,我有一个充满订户列表名称的表,我需要为每个列表的详细信息页面检索一个。然而,无论我如何检索数据,它总是返回表中的每一行。我在这个模型上有两个关系,因为订阅者列表有很多用户,可能还有很多组织

以下是我当前用于尝试检索单个记录的查询:

$query=SubscriberList::with($loadRelations)->where('id',$subscriberListId)->firstOrFail();
这将返回所有行

我也试过:

$query=SubscriberList::with($loadRelations)->findOrFail($subscriberListId);
同样的结果

我的关系分别是
用户
组织
,在SubscriberList模型中设置如下:

公共功能用户()
{
返回$this->hasManyThrough(User::class,subscriberListUsers::class,'User_id','id');
}
公共职能机构()
{
返回$this->hasManyThrough(Organization::class,SubscriberListOrganizations::class,'Organization_id','id');
}
每个人都使用不同的透视表来容纳关系

我不确定为什么我会得到这样的结果——有人能解释一下吗?我已经很久没有使用雄辩了,所以我可能错过了一些明显的东西

编辑:

dd($query)
的结果:

订阅列表{#451
#可填充:数组:1[
0=>“名称”
]
#连接:“pgsql”
#表:空
#主密钥:“id”
#键类型:“int”
+递增:真
#带:[]
#withCount:[]
#每页:15
+存在:正确
+最近被创建:false
#属性:数组:4[
“id”=>10
“姓名”=>“迈克尔”
“创建于”=>“2018-08-07 13:59:24”
“更新时间:2018-08-07 13:59:24”
]
#原件:阵列:4[
“id”=>10
“姓名”=>“迈克尔”
“创建于”=>“2018-08-07 13:59:24”
“更新时间:2018-08-07 13:59:24”
]
#演员:[]
#日期:[]
#日期格式:空
#附件:[]
#事件:[]
#可观测值:[]
#关系:数组:2[
“用户”=>集合{#440
#项目:[]
}
“组织”=>收集{#454
#项目:[]
}
]
#触摸:[]
+时间戳:真
#隐藏:[]
#可见:[]
#防护:阵列:1[
0 => "*"
]
}
编辑:
用户的模式和透视表:

Schema::create('users',函数(Blueprint$表){
$table->increments('id');
$table->string('first_name');
$table->string('last_name');
$table->string('color');
$table->integer('organization_id')->unsigned()->nullable();
$table->string('requested_organization')->nullable();
$table->integer('sso_id')->nullable();
$table->string('email')->unique();
$table->string('job_title')->nullable();
$table->string('telephone')->nullable();
$table->boolean('confirmed')->默认值(false);
$table->rememberToken();
$table->timestamps();
$table->foreign('organization\u id')
->引用('id')
->关于(‘组织’)
->onUpdate('级联')
->onDelete('set null');
});
Schema::create('subscriber\u list\u users')函数(Blueprint$table){
$table->increments('id')->unsigned();
$table->integer('subscriber_list_id');
$table->integer('user_id');
$table->foreign('subscriber\u list\u id')
->引用('id')
->在('订户列表')
->onUpdate('级联')
->onDelete(“级联”);
$table->foreign('user\u id')
->引用('id')
->关于('用户')
->onUpdate('级联')
->onDelete(“级联”);
});
$query->get()
执行一个新的查询,只需返回
$query

用户
使用了错误的关系类型:

公共功能用户()
{
返回$this->belongToMany(用户::类,“订户列表用户”);
}

dd($query)的结果是什么
?@Jonas我已将其添加到问题
dd($query)
是否返回了一行
$query
是一个实例
SubscriberList
,意思是它对应于一个
SubscriberList
行。问题是您只需要标识符而不是所有列吗?@apokryfos是的,我注意到了-但是当我从reducer返回响应时,它总是一个包含所有条目的列表。另外,在订户列表中有一个用户没有显示在查询结果中——它只是一个空的array@apokryfos当我返回结果时,我使用
$query->get()
-这就是问题所在吗?基于此,我假设透视表不需要模型?不,仅在特殊情况下。