【laravel】クエリビルダ(QueryBuilder)でupdated_atを更新したくない場合の対処

    

下記のようクエリビルダを用いてちょっとしたフラグを更新したい場合でupdated_atを更新したくないといった場合の忘備録です。

ModelA::where( "column1" , '=' , $value )->update( [ 'column2'=>'1' ] );

「Use ->update() without updating timestamps」のように検索すると、なにやら第2引数に[timestamp=false]と渡すと更新されなくなると思うが5.3ではダメだといった記述があります。

LaravelのAPIを見てみると5.4でQuery\Builderのupdateメソッドに第2引数は確かに存在しません。
https://laravel.com/api/5.4/index.html

よくよく考えてみるとモデルのtimestampという変数で挙動を変更したりできるということは、モデルを介さずに更新すればよいのではないのかと下記のように書き換えたところ無事にupdated_atを更新せずにupdateメソッドを利用することができました。

DB::table("table_name")->where( "column1" , '=' , $value )->update( [ 'column2'=>'1' ] );