vue.js 使用InertiaJs和Laravel从数据库中删除用户

j9per5c4  于 2023-06-24  发布在  Vue.js
关注(0)|答案(2)|浏览(160)

从数据库中删除记录时遇到问题。我使用的是InertiaJS和Laravel。

组件代码以下为链接/按钮代码:

<Link class="trash" @click="submit(result.ChildID)">
                    Move to Trash
                </Link>

**注意:**ChildID是数据库中子记录的id。
**现在:**当用户点击此链接时,会调用一个方法,如下所示。

methods: {
        submit: function (ChildID) {
            alert(ChildID)
            if (confirm("Are you sure you want to delete this child?")) {
                this.$inertia.delete('destroy/ChildID');
             }
        },
    },

路由编码

Route::delete('destroy/{childID}',[childrenController::class,'destroy']);

控制器编码

public function destroy(children $childID){
     
         $childID->delete();
         return redirect()->route('View_Child_Profile');
    }

现在,当我点击删除按钮时,我得到以下错误

ttcibm8c

ttcibm8c1#

试试这个。我认为你做错了。$inertia.delete('destroy/ChildID');“

methods: {
    submit: function (ChildID) {
        alert(ChildID)
        if (confirm("Are you sure you want to delete this child?")) {
            this.$inertia.delete(`destroy/${ChildID}`);
            // or
            this.$inertia.delete('destroy/'+ChildID);
         }
      },
   },
zfciruhq

zfciruhq2#

下面是我如何处理删除过程。
前Vue + Inertia:

import { Link } from '@inertiajs/inertia-vue3';

在模板中:

<Link method="delete" :href="route('admin.insta_feeds.destroy',id)">Delete</Link>

后端Laravel:
路线:

Route::resource('insta_feeds', InstaFeedsController::class);

控制器功能:

public function destroy(InstaFeed $insta_feed)
{
  if(isset($insta_feed->image_path)){
    Storage::delete($insta_feed->image_path);
  }
    $insta_feed->delete();
    return Redirect::route('admin.insta_feeds.index');
}

相关问题