Laravel和vuejs->如何将控制器数据传递到我的Vue视图?

Laravel和vuejs->如何将控制器数据传递到我的Vue视图?,laravel,vue.js,vuejs2,laravel-5.2,Laravel,Vue.js,Vuejs2,Laravel 5.2,我同时发现了php、laravel、vuejs,我想有些事情我还没有做好 我制作了一个新的组件表,它是一个基本表,我想在我的应用程序中的许多地方使用它,在那里我只需要指定它的标题、列和数据。 足球控制器是我获取所有数据的地方 以下是目前的工作: app.js footballer.blade.php <tableau titre="{{ $title }}" rows="{{ $gridData }}"> </tableau> 在footballer.bla

我同时发现了php、laravel、vuejs,我想有些事情我还没有做好

我制作了一个新的组件表,它是一个基本表,我想在我的应用程序中的许多地方使用它,在那里我只需要指定它的标题、列和数据。 足球控制器是我获取所有数据的地方

以下是目前的工作:

app.js

footballer.blade.php

<tableau
   titre="{{ $title }}"
   rows="{{ $gridData }}">
</tableau>
在footballer.blade.php中

<tableau
   titre="{{ $title }}"
   rows="{{ $gridData }}">
</tableau>
但这不起作用,并告诉我属性或方法不是在实例上定义的,而是在渲染期间引用的

我一点也不管理,我担心的是我有一个好办法:我不应该在足球控制器中获取我的数据吗?如果没有,我在哪里可以买到


提前非常感谢。

您在刀片服务器中的属性前面使用了“:”符号,这表示文档中所说的“v-bind”:。 因此,首先,为道具分配字符串时,不需要在“titre”之前加“:”

然后,为了解决您的问题,您可以尝试向道具添加默认值,例如:

props: {
    rows: {
        default: []
    },
    columns: {
        default: []
    },
    titre: {
        default: ''
    }
}

我没有尝试,但我认为它应该可以工作。

您在刀片服务器中的属性之前使用了“:”符号,这表示文档中所说的“v-bind”。 因此,首先,为道具分配字符串时,不需要在“titre”之前加“:”

然后,为了解决您的问题,您可以尝试向道具添加默认值,例如:

props: {
    rows: {
        default: []
    },
    columns: {
        default: []
    },
    titre: {
        default: ''
    }
}
我没有尝试,但我认为它应该可以工作。

当您同时在Blade和javascript框架中使用{{value}}时。您需要使用以避免刀片和Vue之间发生碰撞

试一试

此外,当使用:rows=value时,值必须是javascript语法,否则当rows=value时,值将被视为字符串

您可能需要使用json_encode来格式化来自Laravel的数据,或者如果您正在使用Laravel 5.5^。

当您同时在Blade和javascript框架中使用{{value}}时,使用。您需要使用以避免刀片和Vue之间发生碰撞

试一试

此外,当使用:rows=value时,值必须是javascript语法,否则当rows=value时,值将被视为字符串


您可能需要使用json_encode来格式化来自Laravel的数据,或者在使用Laravel 5.5^时使用。非常感谢,实际上php数组到javascript数组是个问题

在php控制器中,我将数据解析为json

'gridData' =>json_encode($gridData),
在php视图footballer.blade.php中

<tableau
   titre="{{ $title }}"
   rows="{{ $gridData }}">
</tableau>

现在,我在请求后得到的数据似乎没有被正确解析,但这是另一个问题:

非常感谢,事实上,php数组到javascript数组就是问题所在

在php控制器中,我将数据解析为json

'gridData' =>json_encode($gridData),
在php视图footballer.blade.php中

<tableau
   titre="{{ $title }}"
   rows="{{ $gridData }}">
</tableau>

现在,我在请求后得到的数据似乎没有正确解析,但这是另一点:

非常感谢Takachi!事实上,删除:当我有一个字符串时会有帮助。但对于数组,它不起作用,即使在我按照您的建议更改了道具之后:htmlspecialchars希望参数1是字符串,array give我认为您的rows and columns数组包含另一个数组或对象。Laravel提供了一个很好的调试工具,即dd。此方法允许您在页面上显示数组内容。在控制器中使用dd$行可以帮助您理解变量内容并解决问题。非常感谢Takachi!事实上,删除:当我有一个字符串时会有帮助。但对于数组,它不起作用,即使在我按照您的建议更改了道具之后:htmlspecialchars希望参数1是字符串,array give我认为您的rows and columns数组包含另一个数组或对象。Laravel提供了一个很好的调试工具,即dd。此方法允许您在页面上显示数组内容。在控制器中使用dd$行可以帮助您理解变量内容并解决问题。您使用的是哪种Laravel版本?5.2?你能通过按住Ctrl+u来显示{{$title}的内容吗?你使用的是哪种Laravel版本?5.2?你能通过按住Ctrl+u来显示{{$title}的内容吗?
'gridData' =>json_encode($gridData),
<tableau
   titre="{{ $title }}"
   rows="{{ $gridData }}">
</tableau>
 rows: {
          type: String,
          default: ""
      }

 var rowsArray = JSON.parse(this.rows)