首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于laravel-vue的刀片到Vue用户配置文件

适用于laravel-vue的刀片到Vue用户配置文件
EN

Stack Overflow用户
提问于 2018-04-13 23:53:33
回答 1查看 914关注 0票数 0

他们要求我将所有页面从刀片更改为vuejs,我从用户配置文件(Profile.vue)开始,但我不知道如何在这种情况下使用Axios发送PUT请求。您能指导我创建updateUser ()方法的代码吗?

路由(web.php)

代码语言:javascript
复制
Route::put('/dashboard/profile', 'UserController@myProfile');

myProfile (UserController)

代码语言:javascript
复制
public function myProfile(Request $request)
{
    $this->validate($request, [
            'firstname' => 'required|min:3|max:15',
            'lastname' => 'min:2|max:15',
            'gender' => 'numeric',
            'description' => 'max:200',
    ]);
    $userFind = User::find(Auth::user()->id);

    $userFind->firstname = $request->firstname;
    $userFind->lastname = $request->lastname;
    $userFind->gender = $request->gender;
    $userFind->description = $request->description;

    if($user->update())
        return response()->json([
                'status' => 'success',
                'msg' => 'Datos actualizados correctamente.',
                'cod' => 200
            ]);
     else {
          return response()->json([
                'status' => 'error',
                'msg' => 'Ocurrio un error al actualizar la información.',
                'cod' => 422
            ]);
        }
 }

侧边栏菜单(sidebar.blade.php)

代码语言:javascript
复制
<profile-component auth="{{ Auth::user()->toJson() }}"></profile-component>

配置文件组件(Profile.vue)

代码语言:javascript
复制
<template>
   <div>
<form v-on:submit.prevent="updateUser" class="form-horizontal form-material">
     <div class="form-group">
          <label class="col-md-12">Nombre</label>
          <div class="col-md-12">
              <input type="text" value="" name="firstname"
                 class="form-control form-control-line"
                 v-model="user.firstname">
          </div>
      </div>
      <div class="form-group">
         <label class="col-md-12">Apellido</label>
         <div class="col-md-12">
            <input type="text" value="" name="lastname"
                class="form-control form-control-line"
                v-model="user.lastname">
         </div>
      </div>
      <div class="form-group">
          <label class="col-sm-12">Genero</label>
          <div class="col-sm-12">
               <select class="form-control form-control-line"
                v-model="user.gender">
                  <option>Seleccionar...</option>
                  <option value="1">Femenino</option>
                  <option value="2">Masculino</option>
                  <option value="3">Otra orientación</option>
                </select>
          </div>
       </div>
       <div class="form-group">
           <label class="col-md-12">Sobre mi</label>
           <div class="col-md-12">
               <textarea rows="5" class="form-control form-control-line"
                  name="description" v-model="user.description"></textarea>
           </div>
        </div>
        <div class="col-sm-12">
           <button class="btn btn-success" type="submit">Actualizar</button>
        </div>
     </form>
   </div>
</template>
<script>
 import moment from "moment";
 export default {
   props: ['auth'],
   data() {
      return {
         user: {},
      }
  },
  mounted() {
    this.user = JSON.parse(this.auth);
  },
  methods: {
    updateUser(){
        let config = {
            headers: {'Content-Type': 'multipart/form-data'}
        };
        const value = {
            'id': this.user.id,
            'firstname': this.user.firstname,
            'lastname': this.user.lastname,
            'gender': this.user.gender,
            'description': this.user.description,
        } 
        let url = '/dashboard/profile'
        axios.put(?????????????????????????????????????
                ???????????????????????????????????????
                ???????????????????????????????????????
                ???????????????????????????????????????)
            .then((response) => {
                ?????????????????????????????????????
                ?????????????????????????????????????
            })
            .catch((response) => {
                console.log(response);
            })
    }
},
filters: {
    moment: function(date) {
        return moment(date).format("D [de] MMMM [de] YYYY ");
    }
}

}

你知道如何创建updateUser()方法吗?

我占据了Laravel 5.6,Vuejs 2和Axios

EN

回答 1

Stack Overflow用户

发布于 2018-04-15 03:09:18

在页眉中包含令牌,比如:<meta name="csrf-token" content="{{ csrf_token() }}">,或者可以直接将它传递给方法:axios.put('/dashboard/profile', { put list of params here, including _token })

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49820923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档