Подтвердить что ты не робот

Усечение таблицы в Laravel 5

Описание. У меня есть таблица с проверенными данными. Иногда я хочу очистить его от новых данных. Я могу выполнить усечение в приложении СУБД, например MySQL WorkBench, но я пытаюсь его реализовать в своем приложении.


Цель: сделать кнопку для обрезания таблицы в базе данных при нажатии.


Вот мои шаги:

1 - Объявить маршрут

Route::delete('visitor/truncate',array('as'=>'visitor.truncate', 'uses'=>'[email protected]'));

2 - Создайте функцию truncate в VisitorController

public function truncate()
{

    $visitors = Visitor::all();
    $visitors ->truncate();

    return View::make('visitors.index')
        ->with('success', 'Truncate Done');
}

3 - Создайте кнопку в моем представлении

 {!! Form::model($visitors, array( 'route' => array('visitor.truncate'),'method' => 'DELETE')) !!}
          <button type="submit"  class="btn bgm-red btn-float waves-effect waves-effect waves-button waves-float"><i class="md md-remove"></i></button>
      {!! Form::close()!!}

4 - Тест

Когда я нажимаю на него, он входит в мою функцию truncate() в моем контроллере, но я продолжаю получать эту ошибку

Вызов метода undefined Illuminate\Database\Eloquent\Collection:: truncate()


Нужно ли включать что-нибудь, чтобы использовать truncate()?

Любые намеки на это будут высоко оценены!

4b9b3361

Ответ 1

Метод truncate является частью Query Builder. Однако Visitor::all() возвращает экземпляр Collection. Вам нужно построить запрос, используя следующее:

Visitor::query()->truncate();

Ответ 2

должно также работать следующее:

Visitor::truncate();

Ответ 3

другой способ, если у вас нет класса модели для таблицы - Laravel 5.4

DB:connection(database connection name)->table(table name)->truncate();