php - Laravel 5.8:SQLSTATE [42S22]:找不到列:1054 未知列
问题描述
我有一个user_wallet
这样的表:
然后在控制器上,我尝试了这个:
try {
if ($request->pay_wallet == '1') {
$us_id = Auth()->user()->usr_id;
$user_wallet = UserWallet::find('user_id', $us_id);
dd($user_wallet);
}
}catch (\Exception $e) {
dd($e);
}
但我得到这个错误:
SQLSTATE [42S22]:未找到列:1054“字段列表”中的未知列“2”(SQL:2
从user_wallet
哪里选择user_wallet
。id
= user_id 限制 1)
但是,正如您在图片中看到的那样,有两个带有 2 的钱包user_id
。
那么这里出了什么问题?我该如何解决这个问题?
解决方案
我觉得你用find()
错了,这个方法只接受一个参数,就是你要查找的主键的值。因为您在数据透视表中并且不存在 id,所以您必须firstWhere('user_id', $us_id)
在第一次出现时使用,否则您将不得不为数据透视表重写 find() 方法。
但请注意,一个用户可能有多个钱包,因此最好询问他们使用哪个钱包。
推荐阅读
- spring - 登录 Grails:使用 Log4j2 重新加载外部配置
- ios - 如何在 infoplist.strings 文件中使用用户定义的设置?
- sql-server - SQLSTATE[42000]:[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]'FIELD' 不是可识别的内置函数名
- r - 将 week+day(39+3) 变量更改为 R 中的周或天
- java - 在代码中编写此公式是否有更清洁/更简单的方法?
- django - Django 服务器找不到静态文件
- angular - 来自 web api 的数据未绑定到 Angular 中的视图
- sql - 使用 SQL 将两个相似数据的查询编译到一个视图中
- python - 在 Python 数据框中获取部分时间(早上、下午、晚上、晚上)
- django - TinyMCE JS 在 django 项目中返回 404