为了账号安全,请及时绑定邮箱和手机立即绑定

将两个或多个变量从 Laravel 控制器发送到 vue 组件

将两个或多个变量从 Laravel 控制器发送到 vue 组件

PHP
慕勒3428872 2021-12-24 16:03:57
假设我有一个像这样的 Vue 组件export default {    created() {        axios.get("a url").then(res => {            console.log(res.data);        });    }};然后axios向laravel控制器中的这个函数发送请求public function something(){    $data = Model::all();    $comments = Comment::all();    // here i want to send both $data and $comments to that view    return response()->json();}我可以同时发送它们吗?这个组件和函数只是一个例子
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

在这里,您可以创建一个关联数组并通过 json 发送。


public function something()


    {

        $data=Model::all();

        $comments=Comment::all()

        return response()->json([

         'data'=>$data,

         'comments'=>$comments

       ]) //here i want to send both $data and $comments to that view

    }

在 Vue 中你可以写这样的东西。


export default

{

    data(){

       return {

         comments:[]

       }

    },

    created()

        {


           axios.get("a url")

                .then(res=>{

                    this.comments = [...res.data.comments] //If you are using ES6

                    }

        }

}


查看完整回答
反对 回复 2021-12-24
?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以通过使用responselaravel的方法简单地实现这一点


public function something()

{

    $data=Model::all();

    $comments=Comment::all()

    return response()->json([

         'data'=> $data,

         'comments'=> $comments

       ], 200);

}

或使用相同方法的另一种方式


public function something()

{

        $data=Model::all();

        $comments=Comment::all()

        return response([

         'data'=> $data,

         'comments'=> $comments

        ], 200);

}

在您的组件中,您可以简单地使用


export default

{

    created()

        {

           axios.get("a url")

                .then(res=>{

                       console.log(res.data.data)

                       console.log(res.data.comments)

                    }

        }

}

谢谢


查看完整回答
反对 回复 2021-12-24
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

你可以简单地做到这一点


public function function()


{

    $data=Model::all();

    $comments=Comment::all()

    return response()->json([

     'data'=>$data,

     'comments'=>$comments

   ]) //here i want to send both $data and $comments to that view

}


查看完整回答
反对 回复 2021-12-24
  • 3 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信