[英]Vuetify DataTable with laravel Inertia JS
Please Help me, I'm new to inertia I'm planning to create user crud page with vuetify datatable but i'm stuck here.请帮助我,我是惯性新手,我打算用 vuetify 数据表创建用户 crud 页面,但我被困在这里。
my question is how can I assign users data from the backend into the datatable because no tr/ td tag in vuetify datatable?我的问题是如何将用户数据从后端分配到数据表中,因为 vuetify 数据表中没有 tr/td 标签?
I already tried searching on the internet but most of the tutorial out there was using tailwindcss.我已经尝试在互联网上搜索,但大部分教程都使用 tailwindcss。
< script > export default { data: () => ({ dialog: false, dialogDelete: false, headers: [{ text: 'Name', align: 'start', sortable: false, value: 'name', }, { text: 'Email', value: 'email' }, { text: 'Roles', value: 'roles' }, { text: 'Actions', value: 'actions', sortable: false }, ], users: [], editedIndex: -1, editedItem: { name: '', email: '', roles: '', }, defaultItem: { name: '', email: '', roles: '', }, }), computed: { formTitle() { return this.editedIndex === -1? 'New User': 'Edit User' }, }, watch: { dialog(val) { val || this.close() }, dialogDelete(val) { val || this.closeDelete() }, }, created() { this.initialize() }, methods: { initialize() { this.users = users }, editItem(item) { this.editedIndex = this.users.indexOf(item) this.editedItem = Object.assign({}, item) this.dialog = true }, deleteItem(item) { this.editedIndex = this.users.indexOf(item) this.editedItem = Object.assign({}, item) this.dialogDelete = true }, deleteItemConfirm() { this.users.splice(this.editedIndex, 1) this.closeDelete() }, close() { this.dialog = false this.$nextTick(() => { this.editedItem = Object.assign({}, this.defaultItem) this.editedIndex = -1 }) }, closeDelete() { this.dialogDelete = false this.$nextTick(() => { this.editedItem = Object.assign({}, this.defaultItem) this.editedIndex = -1 }) }, create() { this.$inertia.visit(route('organizations.create')) }, edit(_organisation) { this.$inertia.visit(route('organizations.edit', _organisation)) }, } } < /script>
<template> <v-data-table:headers="headers":items="users" sort-by="name" class="elevation-1" > <template v-slot:top> <v-toolbar flat > <v-toolbar-title>My CRUD</v-toolbar-title> <v-divider class="mx-4" inset vertical ></v-divider> <v-spacer></v-spacer> <v-dialog v-model="dialog" max-width="500px" > <template v-slot:activator="{ on, attrs }"> <v-btn color="primary" dark class="mb-2" v-bind="attrs" v-on="on" > New User </v-btn> </template> <v-card> <v-card-title> <span class="headline">{{ formTitle }}</span> </v-card-title> <v-card-text> <v-container> <v-row> <v-col cols="12" sm="6" md="4"> <v-text-field v-model="editedItem.name" label="Name"></v-text-field> </v-col> <v-col cols="12" sm="6" md="4"> <v-text-field v-model="editedItem.email" label="Email"></v-text-field> </v-col> <v-col cols="12" sm="6" md="4"> <v-text-field v-model="editedItem.Roles" label="Roles"></v-text-field> </v-col> </v-row> </v-container> </v-card-text> <v-card-actions> <v-spacer></v-spacer> <v-btn color="blue darken-1" text @click="close"> Cancel </v-btn> <v-btn color="blue darken-1" text @click="save"> Save </v-btn> </v-card-actions> </v-card> </v-dialog> <v-dialog v-model="dialogDelete" max-width="500px"> <v-card> <v-card-title class="headline">Are you sure you want to delete this user?</v-card-title> <v-card-actions> <v-spacer></v-spacer> <v-btn color="blue darken-1" text @click="closeDelete">Cancel</v-btn> <v-btn color="blue darken-1" text @click="deleteItemConfirm">OK</v-btn> <v-spacer></v-spacer> </v-card-actions> </v-card> </v-dialog> </v-toolbar> </template> <template v-slot:item.actions="{ item }"> <v-icon small class="mr-2" @click="editItem(item)" > mdi-pencil </v-icon> <v-icon small @click="deleteItem(item)" > mdi-delete </v-icon> </template> <template v-slot:no-data> <v-btn color="primary" @click="initialize" > Reset </v-btn> </template> </v-data-table> </template>
You need to remove the empty users: []
from your data
object and receive the user from the backend through props
.您需要从
data
object 中删除空users: []
并通过props
从后端接收用户。
export default {
props: ['users']
}
This way Inertia will automatically bind the the data passed to Inertia::render
to your page component.这样,Inertia 会自动将传递给
Inertia::render
的数据绑定到您的页面组件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.