2017-07-03 16 views
0

私はlaravel 5.3を使用しています。私の通知モデルでは、すべての未読の通知を取得し、それを読み込みとして更新する必要があります。Laravel 5.3すべてのレコードを取得してから更新します

正しく私が

$notifications->map(function($noti){ 
    $noti->is_read= 1; 
    $noti->update(); 
}); 

でそれが可能だと思います。しかし、それは働いていないとしてget();

map();で利用できるModel::where()->get();

後のforeachとしなければなりません。

+0

私はここのforeachで行かないで何でも。すべてのループがdbクエリーになります。特定のクエリですべてを一度に更新する必要があります。 –

答えて

0

すべてを一度に更新する必要があります。同じとwhere句のように、あなたの選択

Model::where(...)->update(['read' => true]); 

またはあなたの読み取りインジケータ

+0

あなたの再生のためにありがとう、 私はそのレコードを必要としました。これを使用して私は再びすべてのレコードを取得する必要があります。 ({; $ noti->更新(); $ noti-> is_read = 1}関数($用のNotI))私のよう –

+0

は $ notifications->マップでそれが可能すべきだと思います。 しかし、動作していません。 –

+0

あなたはまだ2つの要求でよりよく実行しています。 1つは読み込み用で、もう1つは更新用です。 3つ以上の通知が必要な場合はループしないでください。 –

関連する問題