Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除不在Laravel数据表中工作的数据_Php_Laravel_Yajra Datatable - Fatal编程技术网

Php 删除不在Laravel数据表中工作的数据

Php 删除不在Laravel数据表中工作的数据,php,laravel,yajra-datatable,Php,Laravel,Yajra Datatable,我正在使用Laravel Datatable,我只停留在一点上。以下代码用于删除标记管理模型中的条目。但它不是删除条目,更糟糕的是它没有显示任何错误。有人能在下面的代码中找到错误吗 查看 $(document.body).on("click",".remove-tag", function () { var tag_id = $(this).data('id'); showConfirm("DELETE", "Do you want to delete thi

我正在使用Laravel Datatable,我只停留在一点上。以下代码用于删除标记管理模型中的条目。但它不是删除条目,更糟糕的是它没有显示任何错误。有人能在下面的代码中找到错误吗

查看

 $(document.body).on("click",".remove-tag", function () {

        var tag_id = $(this).data('id');
        showConfirm("DELETE", "Do you want to delete this Tag ?","deleteTag("+tag_id+")");
    });

    function deleteTag(id){
        $.ajax({
            type: 'get',
            url: '{!! url('delete-tag') !!}',
            data: {tag_id: id},
            success: function (data) {
                    if (data == "SUCCESS") {
                        $('[data-id="' + id + '"]').closest('tr').remove();
                        showAlert("SUCCESS","Delete Tag successful");
                    }
                }, error: function (data) {

                    showAlert("FAIL","Delete Tag fail");
                }

        });
    }
        var tag_id = $(this).data('id');
        showConfirm("DELETE", "Do you want to delete this Tag ?","deleteTag("+tag_id+")");
    });

    function deleteTag(id){
        $.ajax({
            type: 'get',
            url: '{!! url('delete-tag') !!}',
            data: {tag_id: id},
            success: function (data) {
                    if (data == "SUCCESS") {
                        $('[data-id="' + id + '"]').closest('tr').remove();
                        showAlert("SUCCESS","Delete Tag successful");
                    }
                }, error: function (data) {

                    showAlert("FAIL","Delete Tag fail");
                }

        });
    }
控制器

public function destroy($id)
    {

        $tagManagement = TagManagement::find($id);
        $deleted = $tagManagement->delete();

        if ($deleted) {
            return "SUCCESS";
        } else {
            return "FAIL";
        }
    }

Route::get('/delete tag','AdminPanel\TagController@destroy');



您的路由和控制器方法似乎不一致。首先,最好使用“delete”HTTP请求方法执行删除操作,但这并不是导致问题的原因

您将路由定义为
/delete tag
,但在控制器中,您希望
$id
作为
销毁方法的参数。为了实现这一点,您需要使用如下路径
/delete tag/{id}
,并在前端为ajax调用构造相应的URL。我很惊讶你没有得到App\Providers\RouteServiceProvider::{closure}()
缺少参数1,因为你的请求以这种方式出现错误

很好地解释了如何使用参数定义管线

如果您在问题中包含Laravel版本,这将很有帮助

以下是它应该如何工作:

路由定义

Route::delete('/delete-tag/{id}', 'AdminPanel\TagController@destroy')->name('delete-tag');
JS函数

function deleteTag(id){
        let route = '{!! route('delete-tag', ['id' => '%id%']) !!}';
        $.ajax({
            type: 'post',
            url: route.replace('%id%', id);,
            data: {_method: 'delete'},
            success: function (data) {
                    if (data == "SUCCESS") {
                        $('[data-id="' + id + '"]').closest('tr').remove();
                        showAlert("SUCCESS","Delete Tag successful");
                    }
                }, error: function (data) {

                    showAlert("FAIL","Delete Tag fail");
                }

        });
    }

这不是您的数据表问题,您遗漏了一些代码,您没有正确定义
route
&
jQuery函数,您的
destroy($id)
函数收到一个参数,但您在
路径中没有收到任何参数
&您没有发送
\u令牌
在您的ajax操作中,您需要发送
\u令牌

检查我的代码我正在编辑你的代码

//Change your Route
Route::get('delete-tag/{id}', 'AdminPanel\TagController@destroy')->name('deleteTag');

//Change your function
function deleteTag(id){
    $.ajax({
        type: "GET",
        dataType: 'JSON',
        url:'{{ route('deleteTag', '') }}/'+id,
        data: {_token: '{{csrf_token()}}'},
        success: function (data) {
            if (data == "SUCCESS") {
                $('[data-id="' + id + '"]').closest('tr').remove();
                showAlert("SUCCESS","Delete Tag successful");
            }
        }, error: function (data) {

            showAlert("FAIL","Delete Tag fail");
        }
    });
}

您是否在destroy方法中检查了$id的值?还要让我知道条目是否从数据库中删除?它不是从数据库中删除的。是的,我查过了。它什么也没看到。首先打印您的qurey并在控制台中退出。它将确保执行正确的查询。或者您可以简单地使用DB:table('table name')->where('id',$id))->delete(),刚刚编辑以包含代码的工作版本。现在它正在工作,但没有成功,“delete Tag successful”它看到失败,delete Tag FAIL。
function deleteTag(id){
        let route = '{!! route('delete-tag', ['id' => '%id%']) !!}';
        $.ajax({
            type: 'post',
            url: route.replace('%id%', id);,
            data: {_method: 'delete'},
            success: function (data) {
                    if (data == "SUCCESS") {
                        $('[data-id="' + id + '"]').closest('tr').remove();
                        showAlert("SUCCESS","Delete Tag successful");
                    }
                }, error: function (data) {

                    showAlert("FAIL","Delete Tag fail");
                }

        });
    }
//Change your Route
Route::get('delete-tag/{id}', 'AdminPanel\TagController@destroy')->name('deleteTag');

//Change your function
function deleteTag(id){
    $.ajax({
        type: "GET",
        dataType: 'JSON',
        url:'{{ route('deleteTag', '') }}/'+id,
        data: {_token: '{{csrf_token()}}'},
        success: function (data) {
            if (data == "SUCCESS") {
                $('[data-id="' + id + '"]').closest('tr').remove();
                showAlert("SUCCESS","Delete Tag successful");
            }
        }, error: function (data) {

            showAlert("FAIL","Delete Tag fail");
        }
    });
}