亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

有沒有更好的方法將嵌套 for 循環內的變量從控制器傳遞到視圖?

有沒有更好的方法將嵌套 for 循環內的變量從控制器傳遞到視圖?

守著星空守著你 2024-01-03 14:41:50
我有一個使用 Laravel 7(最新版本)和 PHP 7.4.4(最新版本)的運行代碼,但我想問是否有更好的實現方法。所以基本上,問題出在嵌套的 for 循環內部。我想控制控制器中的變量“學期”和“科目”并將它們傳遞到視圖(index.blade.php)。然而,“科目”取決于“學期”,因此,我被強行寫下了刀片模板內的邏輯,例如: $subjects = $semester->subjects()->where(SOME QUERY HERE)->get()請參閱下面的代碼片段:索引.blade.php@foreach($semesters as $semester)   @if($subjects = $semester->subjects()->where(SOME QUERY HERE)->get())      @if($subjects->isNotEmpty())        //SOME CODE HERE        @foreach($subjects as $subject)             //SOME CODE HERE        @endforeach      @endif   @endif@foreach有沒有最好的方法來實現這個?提前致謝。編輯我也擔心查詢,因為它在循環內。但是,我將更改設計規范以限制視圖中顯示的“學期”數量。這也是為了限制循環內的查詢。但是,如果您有更好的實現,請提出建議。非常感謝。
查看完整描述

1 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

我認為你想要的是在各自的學期中急切地加載一些特定的科目。


$semesters = Semester::with([

    'subjects' => function ($query) {

        $query->where() // SOME QUERY HERE.

    },

])

->get();

現在,當您調用它時,$semester->subjects它僅返回那些過濾的主題。


示例代碼


@foreach($semesters as $semester)

    @if($semester->subjects->isNotEmpty())

        //SOME CODE HERE

        @foreach($semester->subjects as $subject)

             //SOME CODE HERE

        @endforeach

    @endif

@foreach

編輯


現在您不必擔心循環查詢。如您所見,我們已經完成加載。這就是所謂的急切加載


查看完整回答
反對 回復 2024-01-03
  • 1 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號