php - Sql 查询在 PhP Laravel 中返回意外结果
问题描述
我正在使用 Laravel 作为 API,我正在尝试从数据库中获取一个值并使用邮递员进行测试,但是当我尝试这样做时,它会响应空白,如果我看到正在执行的查询,它会返回一个 ? 它应该在哪里返回一个字符串
public function getUser(Request $request){
$email = $request;
$user = User::where('email', $email)->first();
return $user;
$response = User::find($user.id)->first();
return json_encode((string) $response->get(), true);
}
如果我用 toSql() 替换 first()
public function getUser(Request $request){
$email = $request;
$user = User::where('email', $email)->toSql();
return $user;
$response = User::find($user.id)->first();
return json_encode((string) $response->get(), true);
}
但是,如果我执行 User::first() 它可以工作,并且 $email 也是正确的。
如果标题具有误导性或问题提出错误,我很抱歉,我是新手,不知道在哪里寻求帮助。
编辑:有一个用户使用我要获取的电子邮件
解决方案
首先,当您这样做时,toSql()
它使用准备好的语句,?
稍后将放置值的占位符也是如此。
这部分代码没有意义,request是一个对象,不能通过request对象查询。您可以进行表单输入、查询或 json 输入,然后从那里获取。
$email = $request;
$user = User::where('email', $email)->first();
如何从表单、json 或查询中获取输入。
$email = $request->input($email);
在Laravel
你不必担心编码所以 json_encode() 是不必要的。
把它们放在一起,像这样对路线进行成像localhost/api/user?email=admin@yoursite.com
。应该无外乎。
public function show(Request $request) {
$user = User::where('email', $request->input('email'))->first();
return $user;
}
推荐阅读
- borland-c++ - 是否有适用于 Borland C++ (bcc) 编译器 32 位的 IDE?
- google-sheets - 使用公式引用单元格的行值
- git - 詹金斯添加凭据没有显示任何选项
- c - C程序计算一个单词中的字母数量给出错误
- r - 结合 R Shiny 和 R 脚本
- wordpress - Woocommerce 产品价格 3 位小数,所有其他价格 2 位小数
- react-native - 由于 react-native-stack node_modules,Expo 应用程序项目无法运行
- cmake - cmake跨平台构建gtk
- jenkins - 在尝试从 jenkins 安装插件时,我收到错误 sun.security.provider.certpath.SunCertPathBuilderException
- reactjs - 如何更新嵌套反应中的深层对象