我正在使用 laravel 9,并希望使用與之updateOrCreate相關的條件進行查詢。
我想在 UpdateOrCreate 條件內的兩個狀態之間切換。
我知道您可以有條件地使用 if 陳述句,OrderByRaw如下所示:
->orderByRaw("IF(id = {$this->request['filterID']}, 0,1)");
我為下面的類似嘗試了類似的東西updateOrCreate:
Auth::user()->favorites()->updateOrCreate([
'favoriteable_id' => 2,
'favoriteable_type' => Asset::class,
],[
"status" => "IF(status = {$active}, {$inactive},{$active})"
]);
我有一張表,其中狀態默認為 status active;創建記錄時很好。但是,當用戶切換收藏功能時,我希望記錄在active和inactive狀態之間切換。
有什么方法可以使用 eloquent 的內置查詢構建器來做到這一點?
uj5u.com熱心網友回復:
您可以將方法重寫Illuminate\Database\Eloquent\Relations\HasOneOrMany@updateOrCreate為如下所示:
tap(Auth::user()->favorites()->firstOrNew([
'favoriteable_id' => 2,
'favoriteable_type' => Asset::class,
]), function ($instance) {
$instance->fill(['status' => $instance->status == 'active' ? 'inactive' : 'active']);
$instance->save();
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/518274.html
