我想从以下数据访问user_projects
{
"id": 1,
"title": "Random",
"description": "Null",
"client_id": 3,
"deadline": "2023-10-13 18:30:05",
"status": "Proposal",
"created_at": "2023-10-13T05:26:17.000000Z",
"updated_at": "2023-10-13T05:26:17.000000Z",
"user_projects": [
{
"id": 1,
"name": "Rosendo Pfannerstill III",
"email": "[email protected]",
"email_verified_at": null,
"is_client": 0,
"address": null,
"country": null,
"phone_number": null,
"profile_image": null,
"created_at": "2023-10-13T05:15:47.000000Z",
"updated_at": "2023-10-13T05:15:47.000000Z",
"pivot": {
"project_id": 1,
"user_id": 1
}
},
{
"id": 22,
"name": "MukeshPrakash",
"email": "[email protected]",
"email_verified_at": null,
"is_client": 0,
"address": null,
"country": null,
"phone_number": null,
"profile_image": null,
"created_at": "2023-10-13T05:17:12.000000Z",
"updated_at": "2023-10-13T05:17:12.000000Z",
"pivot": {
"project_id": 1,
"user_id": 22
}
}
]
}
我从下面的控制器函数得到这个输出
public function clientsAndUsers($id)
{
$projects = Project::with('userProjects')->find($id);
echo $projects;
}
这个数据来自belongsToMany
的雄辩关系。这里我没有使用echo
,而是将数据发送到一个视图,但我不知道如何访问users_projects
。
我已经试过这个
$projects->user_projects
而这
$projects["user_projects"]
如果我把这个放在这样的循环上
foreach($projects as $project) {
echo $project;
}
它奇怪地返回1
三次。我不知道为什么,两者都没有返回任何东西,所以我不能把它放在一个循环中。
所以请帮我访问它,也解释一下。
2条答案
按热度按时间vsikbqxv1#
你可以通过你的Eloquent关系访问它,你已经渴望加载(使用
with('userProjects')
):当Laravel将模型转换为json输出时,它会自动将关系名称转换为
snake_case
,这就是为什么使用user_projects
键输出userProjects
关系。因此,即使json显示user_projects
,该键实际上并不存在于模型对象上,这就是为什么你不能像你尝试的那样访问它。kjthegm62#
你的问题不太清楚,但如果我理解正确的话。你想访问数据集中的user_projects数组。
你可以做
然后在你的刀锋视野中;