【发布时间】:2019-11-20 16:26:20
【问题描述】:
我希望能够单击一个按钮并从表中删除所有内容,这就是我现在所拥有的。我正在使用laravel/activitylog,这就是我要删除的内容,我使用Spatie\Activitylog\Models\Activity 访问模型,但它不是本地模型。我正在尝试从已从此包创建的表中删除所有内容。
我的 vue.js 上的删除功能,baseUrl: 'logs'
deleteAll(){
this.$confirm('¿Desea borrar todos los registros del logs?', 'Advertencia', {
confirmButtonText: 'Si',
cancelButtonText: 'Cancelar',
cancelButtonClass: 'el-button--info',
confirmButtonClass: 'el-button--warning',
type: 'warning'
}).then(() => {
this.$inertia.delete(this.baseUrl + '/delete')
.then(
() => {
this.$message({
type: 'success',
message: 'Eliminado correctamente.'
});
this.tableData = this.tableData.filter((item) => {
return item.id !== row.id
});
},
(res) => {
this.$message.error(parseError(res)[0]);
}
)
})
},
路线
Route::delete('logs/delete', 'ActivityLogController@delete');
控制器上的删除
public function delete()
{
DB::beginTransaction();
Activity::where('log_name', 'like', '%%')->delete();
DB::commit();
return back();
}
发生的情况是我单击它,在主窗口内打开一个带有 404 的小窗口,它显示成功消息,但没有任何内容被删除。
我做错了什么?
【问题讨论】:
-
如果要删除所有内容,不要使用
where()子句,只需调用Model::delete() -
@TimLewis 发生了同样的事情,它没有删除并且 404 窗口仍然出现。我在问题中添加了更多信息。
-
嗯,不能与这个问题的
vue.js部分交谈(根本不知道vue),但请检查浏览器的网络选项卡以查看请求的去向、标头等,并检查 Laravel 的日志 (storage/logs/) 是否有任何错误等。我的评论更多是对方法的观察。 -
您可能发布到错误的端点。 404 表示未找到。 Laravel 可能无法将您的 url 解析为现有路由。尝试在检查器中使用网络选项卡。
-
@tprj29 这是网络选项卡上的内容 请求 URL:page.com/logs/delete 请求方法:删除状态代码:404 未找到