有什么办法可以将vuejs对象传递给laravel控制器?

时间:2020-11-04 19:43:58

标签: javascript php ajax laravel vue.js

我有一个Vue组件,它有一个对象,我想将其发送到laravel控制器! 这不仅仅是一个js对象!有谁知道我该如何将该对象作为json发送到laravel控制器?

2 个答案:

答案 0 :(得分:0)

如果需要将整个对象作为字段传递,则必须将其作为字符串传递,然后在控制器上使用json_decode。

使用axios进行请求的示例:

axios.post("your_endpoint",
{your_object_field_name: JSON.stringify(your_object)}).then(res => {
//handle response
})

在控制器上:

public function yourControllerMethod(){
   $data = response()->validate('your_object_field_name','required|json'); //validate the field so it is in valid json format
   $jsonArray = json_decode($data); // here you have your json as a php object, pass true as second argument if you want an array (json_decode($data,true))
}

答案 1 :(得分:0)

以下是用于发送姓名和电子邮件的POST示例

   //Variables
    data(){
      return{
        object:{
           name: null,
           email: null,
        }
     }
    }

    //In methods
    sendPost(){
       axios.post("http://url-route-exemple.com", this.object).then(result => {
         console.log(result.data); //return laravel
       })
    }

通过此操作,您可以获取laravel标准(PHP)中的名称和电子邮件数据

//In controller.php
$name = $request->input("name");
$email = $request->input("email");
$jsonNameAndEmail = json_encode($request->all());