在php laravel中显示登录的用户名和姓氏,而不是电子邮件

在php laravel中显示登录的用户名和姓氏,而不是电子邮件,php,laravel,Php,Laravel,我正在使用Laravel,我正在尝试以用户名和姓氏登录。问题是:我可以很容易地从用户表中获取用户电子邮件,因为它位于用户表中。 但名字和姓氏来自另一个表,即contacts表 在这里,我想得到用户的名字和姓氏从联系人表,这是从用户表分离任何帮助将不胜感激 我的代码片段是 @if(Auth::check()) <li><a href="{{ url('/admin') }}" class="btn btn-success" style="margin-top:8p

我正在使用Laravel,我正在尝试以用户名和姓氏登录。问题是:我可以很容易地从用户表中获取用户电子邮件,因为它位于用户表中。 但名字和姓氏来自另一个表,即contacts表

在这里,我想得到用户的名字和姓氏从联系人表,这是从用户表分离任何帮助将不胜感激

我的代码片段是

  @if(Auth::check())
      <li><a href="{{ url('/admin') }}" class="btn btn-success" style="margin-top:8px;">Hi {{Auth::user()->email}}</a></li>
  @else
      <li><a href="{{ url('/login') }}" class="btn btn-success" style="margin-top:8px;">Login</a></li>
  @endif`
@if(Auth::check())
  • @否则
  • @恩迪夫`
    首先在
    联系人
    表中添加一个名为
    用户id

    用户
    型号中:

    public function contact()
    {
        return $this->hasOne('App\Contact', 'user_id', 'id');
    }
    
    public function user()
    {
        return $this->belongsTo('App\User');
    }
    
    public function contact()
    {
        return $this->hasOne('App\Contact', 'user_id');
    }
    
    联系人中
    型号:

    public function contact()
    {
        return $this->hasOne('App\Contact', 'user_id', 'id');
    }
    
    public function user()
    {
        return $this->belongsTo('App\User');
    }
    
    public function contact()
    {
        return $this->hasOne('App\Contact', 'user_id');
    }
    
    然后将其替换为:

    {{Auth::user()->email }}
    
    为此:

    {{ Auth::user()->contact ? Auth::user()->contact->first_name.' '.Auth::user()->contact->last_name : '' }}
    

    这应该有效。

    假设
    联系人
    表中的
    用户
    外键名为
    用户id

    用户
    型号中:

    public function contact()
    {
        return $this->hasOne('App\Contact', 'user_id', 'id');
    }
    
    public function user()
    {
        return $this->belongsTo('App\User');
    }
    
    public function contact()
    {
        return $this->hasOne('App\Contact', 'user_id');
    }
    
    如果外键的名称不同,请将其替换为
    user\u id


    正如@Md Mahfuzur Rahman所建议的那样休息。

    只需使用“一对一”或“一对多”关系。更改
    {Auth::user()->email}
    blade绑定以获得
    {{Auth::user()->您想要的任何字段}
    您有联系人表的模型吗?是的,我有conatctsi的模型。我仍然被困在这个问题中/:我可以通过将关系设置为用户和联系人模型来完成此操作吗?我尝试了此操作,但显示错误未知column contacts.user\u id即使我在联系人表中没有任何user\u id列。我的关系和你说的一样,我的代码是现在的。有人能告诉我我面临什么问题吗???@shahzadhussain,检查我修改过的答案。顺便问一下,您是否正在使用
    数据库迁移
    ?感谢它现在运行良好,但我使用了另一种创建函数的方式,在该函数中,我直接将用户表与联系人连接起来,并将此函数调用到我的代码视图…@shahzad hussain,如果您在
    联系人
    表中没有
    用户
    的外键,然后,您应该为此添加一列;我在我的联系人表中添加了user\u id列,这很好,但我不能显示我的名字和姓氏这是我想做的事情和@md mahfuzur rehman说的一样,但什么都没有发生我的用户模型是公共函数contact(){return$this->hasOne('App\contacts','user\u id');}联系人模型是公共函数user(){return$this->belongsTo('App\user');}