【发布时间】:2021-10-17 16:20:14
【问题描述】:
我有一个这样的控制器方法:
public function postNewWallet(Request $request, $user)
{
$find = UserWallet::where('user_id',$user)->where('wallet_id', $request->wallet_choose)->get();
// dd($find);
if(empty($find)){
UserWallet::create([
'user_id' => $user,
'wallet_id' => $request->wallet_choose,
'balance' => 0
]);
flash()->overlay('Submitted', 'Information submitted', 'success');
}else{
flash()->overlay('Warning!', 'User has the defined wallet', 'warning');
}
return redirect()->back();
}
所以我添加了两个where 子句来检查$user 的user_id 和$request->wallet_choose 的wallet_id 是否存在任何数据。
然后如果$find 返回空,则添加一条新记录。否则显示警告warning 消息。
现在我为在user_wallet 表上没有任何记录但它以某种方式返回警告消息User has the defined wallet 的用户进行测试。
但是,如果我取消注释 dd($find),我会得到以下结果:
Illuminate\Database\Eloquent\Collection {#2551 ▼
#items: []
}
所以它似乎是空的。但是为什么不向表中添加新记录呢?
【问题讨论】:
标签: php laravel eloquent laravel-5.8