Laravel 5.8:SQLSTATE[42S22]:未找到列:1054 未知列
Laravel 5.8: SQLSTATE[42S22]: Column not found: 1054 Unknown column
我有一个叫 user_wallet
的 table,像这样:
然后在控制器上,我尝试了这个:
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 'field list' 中的未知列“2”(SQL:select 2
来自 user_wallet
其中 user_wallet
.id
= user_id 限制 1)
然而如图所示,有两个 user_id
为 2 的钱包。
那么这里出了什么问题?我该如何解决这个问题?
我觉得你用的find()
错了,这个方法只接受一个参数,就是你要找的主键的值。因为你在一个 pivot table 中并且没有 id 存在,
您将不得不在第一次出现时使用 firstWhere('user_id', $us_id)
,否则您将不得不为枢轴 table.
重写 find() 方法
但请注意,一个用户可能有多个钱包,因此最好询问他们使用哪个钱包。
find 方法只适用于 id 所以最好使用 where 子句
$user_wallet = UserWallet::where('user_id', $us_id);
我有一个叫 user_wallet
的 table,像这样:
然后在控制器上,我尝试了这个:
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 'field list' 中的未知列“2”(SQL:select 2
来自 user_wallet
其中 user_wallet
.id
= user_id 限制 1)
然而如图所示,有两个 user_id
为 2 的钱包。
那么这里出了什么问题?我该如何解决这个问题?
我觉得你用的find()
错了,这个方法只接受一个参数,就是你要找的主键的值。因为你在一个 pivot table 中并且没有 id 存在,
您将不得不在第一次出现时使用 firstWhere('user_id', $us_id)
,否则您将不得不为枢轴 table.
但请注意,一个用户可能有多个钱包,因此最好询问他们使用哪个钱包。
find 方法只适用于 id 所以最好使用 where 子句
$user_wallet = UserWallet::where('user_id', $us_id);