第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel:“強制”查詢生成器返回空列表

Laravel:“強制”查詢生成器返回空列表

PHP
30秒到達戰(zhàn)場 2022-09-03 16:01:17
我有以下路線:Route::apiResource('payments', 'PaymentController', ['except' => ['store', 'destroy']]);Route::get('users/{user}/payments', [    'as' => 'users.payments',    'uses' => 'PaymentController@index',]);這個控制器:class PaymentController{    public function index(Request $request, User $user)    {        // Initialize query builder        $query = Payment::query();        // If a user was provided, return all payments belonging to that user        // if condition is satisfied        if ($user) {            if (condition) {                $query = $customer->payments();            } else {                // Some code that causes no results                $query->whereNull('id');   // <----- This hits the database            }        }        return PaymentResource::collection($query->paginate(10));    }}如果您點擊它,則應(yīng)返回所有用戶進行的所有付款。/payments如果命中它,則僅當(dāng)為 true 時,它才應(yīng)返回用戶進行的所有付款,否則應(yīng)返回空列表。/users/id/paymentscondition此代碼有效,但是是實際命中數(shù)據(jù)庫的解決方法。$query->whereNull('id');有沒有辦法避免命中數(shù)據(jù)庫并仍然返回空列表?
查看完整描述

2 回答

?
猛跑小豬

TA貢獻1858條經(jīng)驗 獲得超8個贊

您可以避免命中數(shù)據(jù)庫,但仍然使用初始化的變量返回空列表到空集合或數(shù)組


class PaymentController

{

    public function index(Request $request, User $user)

    {

        // Initialize query builder

        $query = Payment::query();


        // If a user was provided, return all payments belonging to that user

        // if condition is satisfied

        $return = collect();

        if ($user) {

            if (condition) {

                $return = $customer->payments()->paginate(10);

            } 

        }


        return PaymentResource::collection($return);

    }

}


查看完整回答
反對 回復(fù) 2022-09-03
?
縹緲止盈

TA貢獻2041條經(jīng)驗 獲得超4個贊

我試圖在函數(shù)中有一個單一的返回,但更容易遵循@Chin梁給出的建議(謝謝!


class PaymentController

{

    public function index(Request $request, User $user)

    {

        // Initialize query builder

        $query = Payment::query();


        // If a user was provided, return all payments belonging to that user

        // if condition is satisfied

        if ($user) {

            if (condition) {

                $query = $customer->payments();

            } else {

                // Some code that causes no results

                return PaymentResource::collection(collect());

            }

        }

        // Other code here, for example a where statement

        // depending on what is passed in $request



        return PaymentResource::collection($query->paginate(10));

    }

}


查看完整回答
反對 回復(fù) 2022-09-03
  • 2 回答
  • 0 關(guān)注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號