【发布时间】:2025-12-07 23:55:02
【问题描述】:
我将一个对象从我的控制器传递到我的blade.php.file。从那里我使用对象表示法从我的对象中获取变量,这给我留下了一个数组。然后我试图将我的blade.php文件中的数据数组传递给我的vue组件。我想传递整个数组,而不仅仅是它的一个索引。截至目前,当我尝试传递数组时,我收到错误htmlspecialchars() expects parameter 1 to be string, array given,这是有道理的,因为我正在传递一个数组(这就是我想要的)。如何成功地将一组数据从 laravel Blade 传递到 VUE?
blade.php 文件
<div id="app">
<draggable
draggable-table="{{ $table->vars }}">
</draggable>
</div>
VUE 组件
<template>
</template>
<script>
export default {
props: ['draggableTable'],
};
</script>
编辑:
按照我的建议,我在刀片表中添加了 : 和 json_encode,如下所示:
:draggable-table="{{json_encode($table->vars)}}">
但是当我检查我的 VUE 控制台时,我的组件不再显示,并且只显示了根,没有传入任何数组数据。(见图)
第二次编辑:
我现在正在尝试通过 axios 执行此操作。我在<script> 标签内将它添加到我的组件中
data(){
return{
table: this.draggableTable
}
},
methods: {
getData(){
axios.get(this.endpoint, {
table: this.table,
}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
});
}
},
computed: {
endpoint(){
return window.location.protocol + "//" + window.location.host + '/users';
}
}
app.js
const app = new Vue({
el: '#app'
});
那么现在如何将数据从刀片传递到 VUE?
谢谢。
【问题讨论】:
-
<draggable :draggable-table="@json($table->vars)"></draggable>应该可以工作。 -
@Remul 我也尝试了您的解决方案,但在我的 VUE 浏览器控制台中,只显示根组件,不包含任何数据。
-
能否分享一下 app.js 或者你创建 vue 实例的地方
-
@TEFO 刚刚在我的问题中发布了它
-
所以你没有在根实例中本地注册它。您是否在全球范围内注册了此组件?