【问题标题】:Get the user name based on the id in Laravel根据 Laravel 中的 id 获取用户名
【发布时间】:2014-12-23 16:14:23
【问题描述】:

我正在尝试显示用户的名字,但我只有一个用户的 ID。

我的关系是:

//TypeCost
    public function user()
    {
        return $this->hasMany('User');
    }



  //User
        public function type_cost()
        {
            return $this->belongsTo('TypeCost', 'type_cost_user');
        }

此行显示用户 ID,但我需要名称。

<td>{{ $type_cost->user_id}}<br>

希望您的帮助,在此先感谢。

【问题讨论】:

    标签: php laravel-4 models relationships


    【解决方案1】:

    在 TypeCost 模型中 hasMany 关系返回一个 Collection 类型的对象,你有 2 个选项,使用 first 或使用 foreach 游览对象,同样在 User 模型中,关系 belongsToMany 返回一个 Collection 类型的对象,在这里你可以看到一个例子:

    {{ $type_cost->user->first()->username }}
    

    @foreach($type_cost->user as $user)
       {{ $user->username }}
    @endforeach
    

    【讨论】:

    【解决方案2】:

    如果您的 ID 保存在 $type_cost-&gt;user_id 中,这将给出用户名:

    User::find($type_cost-&gt;user_id)-&gt;name

    【讨论】:

      【解决方案3】:

      您应该使用您用来存储用户名的任何字段名称。

      例如

      {{$type_cost->user->username}}
      

      【讨论】:

      • $type_cost-&gt;user() 将返回一个Relation 实例并且没有实际数据,因此您无法访问username
      • 感谢您的回答,但我有这个错误:ErrorException (E_UNKNOWN) 未定义属性:Illuminate\Database\Eloquent\Relations\HasMany::$first_name(查看:/var/www/control_telefonico/app /views/type_costs/index.blade.php)
      • @MiguelMarroquin 取出()。我已经修改了答案。
      • 这仍然行不通,因为userhasMany 关系,所以你会得到一个集合而没有模型。
      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 2017-12-07
      • 2017-06-23
      • 2019-08-22
      • 2016-10-11
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多