gpt4 book ai didi

php - Laravel 5.1 在其他表中查找带有 project_id 的项目所有者电子邮件

转载 作者:行者123 更新时间:2023-11-29 06:19:49 25 4
gpt4 key购买 nike

当我知道项目 ID 时,我正在尝试查找用户电子邮件。

例如,在我的表项目中,我有一条记录:id: 1 user_id: 6

我知道想在我的用户表中找到用户 6 的电子邮件:例如:id: 6 邮箱: hello@gmail.com

所以我想得到 hello@gmail.com

我试过类似的方法,但似乎没有用:

$projectOwnerEmail = DB::table('users')
->select('email')
->where('id', '=', $input['project_id'])
->join('projects', 'users.id', '=', 'projects.user_id')
->get();

非常感谢!

最佳答案

您使用查询生成器创建的查询如下:

SELECT email
FROM users
INNER JOIN projects ON users.id = projects.user_id
WHERE id = ?

问题在于,在评估条件时,无法确定您是否正在尝试比较 idusers表或 idprojects table 。这会导致违反完整性约束错误:

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous

要解决此问题,您只需为 id 指定表像这样的列:

->where('projects.id', '=', $input['project_id'])

另外,使用 get将返回一个集合,这没关系,因为您可以像这样访问电子邮件 $projectOwnerEmail[0]->email ,但这感觉太复杂了。相反,您可以使用 pluck它将返回一个包含电子邮件地址的字符串:

$projectOwnerEmail = DB::table('users')
->select('email')
->where('projects.id', '=', $input['project_id'])
->join('projects', 'users.id', '=', 'projects.user_id')
->pluck('email');

现在您已将电子邮件字符串直接存储在 $projectOwnerEmail 中变量。

关于php - Laravel 5.1 在其他表中查找带有 project_id 的项目所有者电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33894780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com