我这张表中有一个删除链接
@foreach ($tasks as $task)
<tr>
<td>{{$task->id}}</td>
<td>{{$task->name}}</td>
<td><a href="javascript:void(0)" onclick="eliminar({{$task->id}})" id="borrar_{{$task->id}}" name="borrar_{{$task->id}}" class="btn btn-danger">Eliminar</a></td>
</tr>
@endforeach
和javascript代码,它向控制器的destroy方法发出请愿
function eliminar(id){
var _token = $('meta[name="_token"]').attr('content');
$.ajax({
type: "DELETE",
url: "task/"+id,
data: { _token : _token},
success: function (data) {
$("#borrar_"+id).closest('tr').fadeOut();
},
error: function (data) {
alert('No se pudo eliminar el resgistro');
}
});
}
控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Task;
class TaskController extends Controller
{
.
.
.
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
Task::destroy($id);
}
}
单击该按钮时,其父表行淡出,但我认为这不是最好的方法。如何检查Task::destroy($id)
是否成功成功发送成功错误响应ajax请求
答案 0 :(得分:0)
在您的控制器中:
public function destroy($id)
{
$deleted = Task::destroy($id);
return $deleted ? 'deleted' : 'error';
}
在你的js中:
success: function (data) {
if(data === 'deleted'){
$("#borrar_"+id).closest('tr').fadeOut();
}else{
alert('No se pudo eliminar el resgistro');
}
},
我觉得有用的另一个方法是使用findOrFail来获取模型,所以如果找不到模型则返回404,如果发现模型,则返回错误响应,如果找到模型,则delete方法应该总是返回true,所以:< / p>
public function destroy($id)
{
$task = Task::findOrFail($id);
return $task->delete(); // will return true
}