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

假设我有一个像这样的 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();

}

我可以同时发送它们吗?这个组件和函数只是一个例子


慕勒3428872
浏览 155回答 3
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                    }        }}

智慧大石

您可以通过使用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)                    }        }}谢谢

德玛西亚99

你可以简单地做到这一点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}
打开App,查看更多内容
随时随地看视频慕课网APP