簡體   English   中英

Laravel 5.3雄辯的大量更新

[英]Laravel 5.3 eloquent mass update

我在laravel 5.3中遇到一個問題,也許你們也遇到過類似的問題,並且知道是什么原因造成的。

我正在加載活動流消息中的前十條(雄辯的模型活動,其“讀取”列可以為0或1,並顯示用戶是否已閱讀),並且如果有十個以上的活動,則有更多的負載頁面底部的按鈕。 單擊加載更多按鈕時,我將通過ajax調用從后端獲取10條消息。

這是問題所在:

    $activities = Activity::where( 'to_user_id', Auth::id() )
                          ->latest()
                          ->offset( $offset )
                          ->limit( 10 )
                          ->get();


    Activity::where( 'to_user_id', Auth::id() )
                       ->latest()
                       ->offset( $offset )
                       ->limit( 10 )
                       ->update( [ 'read' => 1 ] );

我在首次加載和ajax加載時都運行以上代碼。 首次加載是通過route / web.php進行的,它可以完美運行並將最初的10個活動標記為已讀。

Ajax調用是通過ActivityController文件處理的,但是由於某些原因,輸出正確,但是“ read”列未更新。 我應用了臨時修復程序:

    foreach($activities as $activity) {
        $activity->read = 1;
        $activity->save();
    }

但是我仍然需要找出問題所在:

    Activity::where( 'to_user_id', Auth::id() )
                       ->latest()
                       ->offset( $offset )
                       ->limit( 10 )
                       ->update( [ 'read' => 1 ] );

因為您的第一個WEB請求正在更新->get()之后的所有內容。 用Eloquent不可能進行這種大規模更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM