Что Laravel массового обновления, не касаясь метки


Что Laravel массового обновления, не касаясь метки

19.07.2018 05:53:22 Просмотров 40 Источник

если одно обновление мы можем использовать

$variable->timestamps = false;

но как, если я хочу массово обновлять данные, не касаясь временных меток?

в настоящее время мой код таков

$allapps = App::select('id','name','parent_id','view')->where('published',true)->whereNotIn('id', $excludeappsid)->update(['timestamps' => false],['view' => 0]);

но я получаю ошибку

SQLSTATE[42S22]: столбец не найден: 1054 неизвестный столбец "метки времени" в "списке полей"

есть решение?

спасибо.

У вопроса есть решение - Посмотреть?

Ответы - Что Laravel массового обновления, не касаясь метки / Laravel Mass Updates without touching timestamps

Goms

19.07.2018 05:57:11

Начиная с вашей модели, вы можете просто пометить временные метки на false

public $timestamps = false;

Или вы ничего не можете сделать. :)

    $allapps = App::select('id','name','parent_id','view')
                   ->where('published',true)
                   ->whereNotIn('id', $excludeappsid)
                   ->update(['view' => 0])
Является ответом!
Jerodev

19.07.2018 06:03:23

Насколько я знаю, это невозможно. Я не думаю, что это вообще возможно.

Однако вы можете использовать конструктор запросов непосредственно без Eloquent, и это не приведет к обновлению временных меток.

\DB::table(with(App::class)->getTable())
    ->where('published', true)
    ->whereNotIn('id', $excludeappsid)
    ->update(['view' => 0]);
yuan wang

17.09.2020 04:53:14

Попробовать это:

$model = new App();
$model->timestamps = false;
App::setModel($model)
    ->where('published',true)
    ->whereNotIn('id', $excludeappsid)
    ->update(['view' => 0]);
Помочь в развитии проекта:
Закрыть X