javascript 我怎样才能建立路线?

6ie5vjzr  于 2023-02-15  发布在  Java
关注(0)|答案(1)|浏览(151)

嗨我建laravel应用程序,我有一个消息表,我想用datatables显示数据。在我的索引视图中,数据是可见的,排序,分页和数据表的搜索栏工作正常,我还添加了编辑和删除按钮,我开始工作的删除按钮,但我有一个路由问题。这是我的路由文件web.php

Route::middleware('auth')
    ->namespace('Admin')
    ->name('admin.') 
    ->prefix('admin') 
    ->group(function () {
        Route::get('/', 'HomeController@index')->name('home');
        Route::resource('/user', 'UserController');/* ->except(['edit', 'update']); */
        Route::resource('/user/{user:id}/messages', 'MessagesController');

    });

    Route::get('messages', 'Admin\MessagesController@getMessages')->name('get.messages');

    Auth::routes();

MessagesController中向我返回数据表中消息的函数

public function getMessages()
    {
        $user = Auth::user();
        return DataTables::of(Message::query())
            ->addColumn('action', function ($message) use ($user) {
                return '<a href="javascript:void(0)" data-toggle="tooltip"  data-id="' . $message->id . '"  class="btn btn-xs btn-primary" data-toggle="modal" data-target="#edit-modal-' . $message->id . '"><i class="glyphicon glyphicon-edit"></i> Modifica</a>
            <a href="javascript:void(0)" class="btn btn-xs btn-danger deleteMessage" data-id="' . $message->id . '" data-user="' . auth()->user()->id . '" data-toggle="modal" data-target="#delete-modal-' . $message->id . '"><i class="glyphicon glyphicon-trash"></i> Elimina</a>
            ';
            })
            ->setRowClass('{{$id % 2 == 0 ? "alert-success" : "alert-danger"}}')
            ->setRowId(function ($message) {
                return $message->id;
            })
            ->setRowAttr(['align' => 'center'])

            ->make(true);
    }

这是我的jquery代码,用于删除数据表中的记录

$('body').on('click', '.deleteMessage', function() {

            var id = $(this).data("id");
            confirm("Are You sure want to delete this Post!");

            $.ajax({
                type: "DELETE",

                url: "{{ route('admin.messages.destroy', ['user' => auth()->user()->id]) }}/" +
                    id,
                success: function(data) {
                    table.draw();
                },
                error: function(data) {
                    console.log('Error:', data);
                }
            });

        });

我希望代码删除我在数据表中选择的记录,但我得到此错误Illuminate\Routing\Exceptions\UrlGenerationException [Route:管理员邮件销毁] [URI:管理员/用户/{用户}/消息/{消息}]。(查看:C:\用户\ficus\桌面\Progetti\ArgostudioADV\resources\views\layouts\app.blade.php)http://127.0.0.1:8000/admin/user/1/messages有人能找出我如何在删除功能中建立网址吗?
我做了更改@aynber建议我和它的工作,我有记录的vista现在,但现在我有另一个问题,当我按下删除按钮,弹出显示我提交,但它给予我405错误和消息仍然存在,但如果我重新加载页面视图给我记录删除成功的消息,它也消失在数据库中,有什么线索吗?这就像函数从来没有成功过,但它删除了记录,因为我们调用了销毁路由

zdwk9cvp

zdwk9cvp1#

首先,您需要正确定义资源路线。
资源路由

Route::resource('user.messages', MessagesController::class);

消息删除链接

<a href="javascript:void(0)" class="btn btn-xs btn-danger deleteMessage" data-route="{{ route('admin.messages.destroy', [auth()->id(), $message->id]) }}"  data-toggle="modal" data-target="#delete-modal-' . $message->id . '"><i class="glyphicon glyphicon-trash"></i> Elimina</a>

js代码

$('body').on('click', '.deleteMessage', function() {
        var route = $(this).data("route");
        confirm("Are You sure want to delete this Post!");
        $.ajax({
            headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" },
            type: "DELETE",
            url: route,
            success: function(data) {
                table.draw();
            },
            error: function(data) {
                console.log('Error:', data);
            }
        });
    });

相关问题