【问题标题】:Retrieving an Array with Axios in Laravel在 Laravel 中使用 Axios 检索数组
【发布时间】:2018-04-01 16:00:29
【问题描述】:

我正在向我的控制器功能之一发出 Axios 请求,该功能将进入我的数据库并获取所有供应商信息,但是当它返回到我的 VUE 文件时没有数据

这是我的要求:

mounted(){
            axios.get('/product/'+ this.url + '/suppliers/info').then(response=>console.log(response.data));

        },

这是我的控制器功能

public function getSuppliers($product){

        $suppliers = $this->supplier->getAll();

        return response()->json($suppliers);
    }

当我在控制器中取出 $suppliers 时,它拥有所有数据,所以我知道它已成功从数据库中检索到,但是当我在控制台将其注销时,一旦它返回到 VUE,数据就消失了。

如果我只是控制台日志响应,这就是我看到的:-

我可以看到它返回了所有应该存在但其中没有任何数据的数组?我做错了什么?

当我在控制器中 DD 时,这是 $suppliers 的 sn-p:

来自网络的请求标头的图像:-

getAll 函数:-

public function getAll()
{
    return $this->buildEntities($this->data->orderBy('name')->get());

}

【问题讨论】:

    标签: php laravel vue.js axios


    【解决方案1】:

    您的$suppliers 似乎不是一个数组,而是一个雄辩的模型。所以试试这个:

    return response()->json(["suppliers"=>$suppliers], 200);
    

    并在response.data.suppliers查看

    ** 编辑 **

    问题可能是函数 buildEntity。 试试看

    $this->data->orderBy('name')->get()
    

    【讨论】:

    • 仍然得到一个空数组,你也对,它是一个雄辩的模型(对不起,我是前端的人)
    • 如果你打印 $suppliers->toArray() 会返回什么?
    • 你的意思是添加 dd($suppliers->toArray());到控制器?如果是这样,我只会收到一条错误消息“调用数组上的成员函数 toArray()”
    • 好的,是的,你的问题仍然是一个 $suppliers 数组,因为如果使用假数组它可以工作,问题就是这个。尝试进行更简单的查询,例如 Suppliers::all() 进行测试。
    猜你喜欢
    • 2019-01-24
    • 2020-05-10
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2021-09-24
    • 2020-10-31
    相关资源
    最近更新 更多