kyo*_*kyo 27 php laravel eloquent laravel-5
描述:我有一个充满测试数据的表.有时,我想清除它以获取新数据.我可以像DB WorkBench一样在DBMS应用程序中执行截断,但我正在尝试在我的应用程序中实现它.
目标:在单击时创建一个按钮以截断数据库中的表.
这是我的步骤:
1 - 申报路线
Route::delete('visitor/truncate',array('as'=>'visitor.truncate', 'uses'=>'VisitorController@truncate'));
Run Code Online (Sandbox Code Playgroud)
2 - truncate
在我的中创建一个函数VisitorController
public function truncate()
{
$visitors = Visitor::all();
$visitors ->truncate();
return View::make('visitors.index')
->with('success', 'Truncate Done');
}
Run Code Online (Sandbox Code Playgroud)
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()!!}
Run Code Online (Sandbox Code Playgroud)
4 - 测试
当我点击它时,它进入truncate()
我的控制器中的功能,但我不断收到此错误
调用未定义的方法Illuminate\Database\Eloquent\Collection :: truncate()
我需要包含任何东西truncate()
吗?
任何提示将非常感谢!
Bog*_*dan 43
该truncate
方法是查询生成器的一部分.但是Visitor::all()
返回一个Collection
实例.您需要使用以下内容构建查询:
Visitor::query()->truncate();
Run Code Online (Sandbox Code Playgroud)
Rya*_*yan 21
https://laravel.com/docs/5.6/queries#deletes说:
如果您希望截断整个表,这将删除所有行并将自动递增ID重置为零,您可以使用以下
truncate
方法:
DB::table('users')->truncate();
如果您没有表格的模型类,另一种方式 - Laravel 5.4
DB:connection(database connection name)->table(table name)->truncate();
Run Code Online (Sandbox Code Playgroud)
https://laravel.com/docs/8.x/queries#delete-statements
使用查询构建器:
DB::table('users')->truncate();
Run Code Online (Sandbox Code Playgroud)
并与模型:
User::truncate();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
45452 次 |
最近记录: |