使auth用户进入vuejs对象

时间:2018-12-19 10:36:55

标签: mysql laravel vue.js

我想将当前登录的用户详细信息放入隐藏的输入字段中。所以我写这样的输入值

<input type="hidden" name="name" v-model="comment.name">
<input type="hidden" name="avatar" v-model="comment.avatar">

或者我想直接将用户信息放入我的vuejs对象中

comment: {                  
          name: '',
          avatar: '',
          user_id: '',
          comment: '',
          status: 'Approved',
          created_at: ''
        },

我如何将当前登录的用户详细信息添加到该对象中。我使用这种获取方法来获取详细信息

axios.get("api/userdetails").then(({ data }) => (this.users.fill(data)));

这是我的控制器

return auth('api')->user();

3 个答案:

答案 0 :(得分:0)

为什么不将用户变量直接传递到vuejs对象的刀片模板中?

{{ Auth::user()->id }} {{ Auth::user()->name }} {{ Auth::user()->avatar }}

答案 1 :(得分:0)

如果我很好理解,this.users是您所拥有的所有用户的列表,比如说,状态吗?如果这是真的,那么您必须通过其具有的唯一ID识别当前登录的用户,也许您应该使用this.users.filter查找该用户并将ID与当前登录的用户进行比较。然后,只需抓住您需要填写的字段即可。

答案 2 :(得分:0)

如何使用Vuejs和Laravel获取当前经过身份验证的用户ID

您应将

添加到 <meta name="user-id" content="{{ Auth::user()->id }}">

// app.blade.php或类似下面的master.blade.php

    <head>
        <meta charset="UTF-8">
        @if (Auth::check()) 
          <meta name="user-id" content="{{ Auth::user()->id }}">
        @endif 
        <meta http-equiv="X-UA-Compatible" content="IE=edge" 
      ...
      ..

然后在app.js或main.js中添加

 data: {
    comment: {
      name: '',
      cart: '',
      user_id: document.querySelector("meta[name='user-id']").getAttribute('content'),
    },

//最后在MyVueComponent.vue中

<div class="col-sm-6">
    <label>First Name *</label>
    <input type="text" v-model="comment.name" class="form-control" required>
    <input type="hidden" v-model="comment.cart">
    <input type="hidden" v-model="comment.user_id">
</div>

希望会帮助某人