dongxi4235
2017-02-03 22:07
浏览 81
已采纳

Laravel有一个通过数据透视表

So I have 2 models, User & Profile, the relationship is set up as follows:

    /**
     * User belongs to many Profile
     *
     * @return \Illuminate\Database\Eloquent\Relations\belongsToMany
     */
    public function profiles()
    {
        return $this->belongsToMany('App\Models\Profile', 'user_profiles');
    }

I have 3 tables, users, profiles & user_profiles (the pivot table)

I have a column in my users table called active_profile which gets populated with a profile id.

How can I set up the relationship so that I can call something like the following:

$user->active_profile

So that it will return all the profile information for the id set in active_profile?

图片转代码服务由CSDN问答提供 功能建议

所以我有2个模型,User& 配置文件,关系设置如下:

  / ** 
 *用户属于许多配置文件
 * 
 * @return \ Illuminate \ Database \ Eloquent \  Relations \ belongsToMany 
 * / 
公共功能配置文件()
 {
返回$ this-> belongsToMany('App \ Models \ Profile','user_profiles'); 
} 
  <  / pre> 
 
 

我有3个表,用户,个人资料和 user_profiles(数据透视表)

我的users表中有一个名为 active_profile 的列,其中填充了配置文件ID。

如何设置关系以便我可以调用以下内容:

$ user-&gt; active_profile

这样它将返回active_profile中设置的id的所有配置文件信息?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

5条回答 默认 最新

  • duananyantan04633 2017-02-03 22:29
    最佳回答

    You can add a method into your User model like this :

    public function active_profile ()
    {
       return $this->profiles()
              ->find($this->active_profile);
    }
    

    and then you can call the method as $user->active_profile();

    评论
    解决 无用
    打赏 举报
查看更多回答(4条)

相关推荐 更多相似问题