Laravel + Bootstrap-Vue 表不接受数据

Posted

技术标签:

【中文标题】Laravel + Bootstrap-Vue 表不接受数据【英文标题】:Laravel + Bootstrap-Vue Table not accepting data 【发布时间】:2018-11-12 20:01:34 【问题描述】:

我目前正在玩 Laravel Spark,正在慢慢学习 Vue.js 系统。

我有一堆数据要显示在从 AWS DynamoDB 提取的表中。我以各种方式成功解析了这些数据,并且可以在标准的静态 Bootstrap 表中显示数据。我现在正在尝试使用 Vue.js 版本,但我这辈子根本无法显示这些数据。如果我将虚拟数据插入到 Vue 组件中,则会显示虚拟数据,所以它一定是我传递数据的方式。

我的代码如下:

TableController.php

public function show()

    $data = $this->fetchAWSData($condition);    // This is my separate AWS method
    return view('table')->with('items', $data);

table.blade.php

@extends('spark::layouts.app')

@section('content')
<home :user="user" inline-template>

<div class="container-fluid" style="text-align: left">

    <h1>Data</h1>

    <MyTable items= $items ></MyTable>

</div>

</home>
@endsection

MyTable.vue

<template>
    <b-table striped hover :items=items></b-table>
</template>

<script>

    export default 

        data() 
            return 
                items: this.items
            
        
    
</script>

我在这里做错了什么?我尝试过以各种方式格式化我的数据; JSON,手动,数组......没有任何作用。所以这一定是我传递它的方式。

任何见解都会令人惊叹:)

【问题讨论】:

【参考方案1】:

您必须使用 props 才能将属性传递给 Vue 的组件。

MyTable.vue

...
<script>
  export default 
    props: ['items'],
  
</script>

然后就可以向组件传递数据了:

<MyTable :items=" $items ">

【讨论】:

如果不清楚 props 对 Vue 新手来说究竟是什么,文档中的这个页面涵盖了要点:vuejs.org/v2/guide/… 好的,我已经修改了我的代码以包含道具的使用(我尝试失败并错误地认为它是错误的),但仍然无法正常工作。一定是我的数据格式出错了。文档指出该组件接受这样的数据:“items 是数组格式的表数据,其中每个记录(行)数据都是键控对象。”。 PHP 数组和关联数组到 JS 键控对象和数组之间肯定是有区别的,并且彼此不兼容。那我需要转换组件内部的数据吗? 我不知道你的数据是什么样的,但如果 $items 是 laravel 集合,laravel 会为你转换。如果$items 是一个集合,你可以试试:items="!! $items-&gt; toJson() !!",如果$items 是一个PHP 数组,你可以试试:items=" json_encode($items) "。如果 $items 是一个集合,那么在 vue 中这将是一个数组,如果是关联数组,它将是一个对象。

以上是关于Laravel + Bootstrap-Vue 表不接受数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 分页和 Bootstrap-vue 分页

Laravel bootstrap-vue 不适用于导航崩溃

无法读取未定义的属性“扩展”。 laravel bootstrap-vue中的安装问题

单击laravel vuejs中的按钮后如何隐藏bootstrap-vue模式

带有 laravel 未知自定义元素的 bootstrap-vue.js:<b-alert> 错误

bootstrap-vue 表没有填充我的数据库数据[重复]