1. ホーム
  2. php

[解決済み] Laravel5でテーブルを切り捨てる

2022-02-19 03:01:26

質問

説明 : テストデータでいっぱいのテーブルがあります。時々、新しいデータのためにそれをクリアしたい。DBMSアプリで以下のように切り捨てを実行することができます。 MySQLワークベンチ しかし、私は代わりに私のアプリケーション内でそれを達成しようとしています。


目標 : クリックするとデータベースのテーブルが切り捨てられるボタンを作成します。


以下は私の手順です。

1 - ルートを宣言する

Route::delete('visitor/truncate',array('as'=>'visitor.truncate', 'uses'=>'VisitorController@truncate'));


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() 関数を作成しましたが、このエラーが発生しました。

Call to undefined method IlluminateDatabaseEloquentCollection::truncate()


を使用するには、何かインクルードする必要がありますか? truncate() ?

何かヒントがあれば、ぜひ教えてください。

解決方法は?

その truncate メソッドは、Query Builder の一部です。しかし Visitor::all() が返されます。 Collection インスタンスを作成します。以下を使用してクエリを構築する必要があります。

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