首页 > 解决方案 > Laravel Nova 工具 - 向 Vue 发送元数据

问题描述

我正在为Laravel Nova 2.0创建一个工具

在我的Tool我想向 Vue 组件发送一个东西列表:

在我的工具的 PHPsrc中,我有一个生成“元”的函数,如此处的文档中所建议

public function stuff() {

    $stuff = [];

    ... 

    return $this->withMeta(['stuff' => $stuff]);
}

在我NovaServiceProvider.php的实例中,我实例化了该工具并调用了元函数。IE

public function tools()
{
    return [
        (new Tool())->stuff(),
    ];
}

但是,没有任何东西传递给 Tool.vue 组件,(我花了一些时间检查它!)即:

mounted() {
    console.log(this.stuff); // undefined 
},

此处讨论了问题:https ://github.com/laravel/nova-issues/issues/761 ,但请注意我使用的是 aTool而不是 aResourceTool或 a Card

这是工具的错误,还是我做错了什么?有解决方法吗?

标签: laravel-nova

解决方案


我还没有尝试创建自定义工具,但是对于自定义字段,您可以使用以下方法获取元数据:

mounted() {
    console.log(this.field.stuff);
},

如果您遇到类似问题的问题,我建议以 json 格式在控制台中打印类的内容,这样可以更轻松地解决问题

mounted() {
    console.log(JSON.stringify(this));
},

虽然我认为这不是问题,但您可以尝试将您的 stuff() 函数修改为:

public function stuff()
{
    $stuff = [];
    $this->withMeta(['stuff' => $stuff]);
    return $this;
}

推荐阅读