我要達到記錄
如果在模型用戶中
class User extends Model {
protected $fillable = ['last_name','first_name'];
protected $appends = [
'full_name',
];
public function getFullNameAttribute(): string
{
return $this->first_name . ' ' . $this->last_name;
}
}
應要求
full_name = 'John Johans';
如果如何獲取資料庫記錄
User::query()->where('full_name',$request->full_name)
如果我使用此記錄,答案將是資料庫中不存在 full_name 的錯誤
我想用“where”作為“appends”
User::query()->where(**MY ATTRIBUTE**,$request)->first()
有可能的 ?
uj5u.com熱心網友回復:
2個選項:
CONCAT在您的WHERE條款中使用
User::query()
->whereRaw('CONCAT(first_name, " ", last_name) = "?"', [$request->full_name])
->get();
- 獲取所有用戶,然后過濾結果
Collection。
User::cursor()
->filter(function ($user) use ($request) {
return $user->full_name == $request->full_name;
})
->collect();
User::cursor()
->filter(fn($user) => $user->full_name == $request->full_name)
->collect();
讓 SQL 進行過濾(選項 1)可能是更好的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/416425.html
標籤:
