doushang1890 2019-03-05 16:54
浏览 30

Laravel Eloquent属于ToMany

I have three db tables:

attributes
---------------------------------
| id | name | showed_name | class

attributes_profiles
----------------------------------------------
| id | attribute_name | profile_id | content |

profiles
------------
| id | ... |

When a User go on the profile site, I want to load ALL Attributes from the table, but I also want the content from the intermediate table (pivot) for this user (id).

public function Attribute(){
  return $this->belongstoMany('App\Attribute', 'attributes_profiles', 'profile_id', 'attribute_name','id','name')->withPivot('content');
}

With this class in the profiles model, I wouldn't be able to get all attributes.

When I use a Profiles() Class in the Attributes Model, I get every Attribute but not the content for the user... but for every user.

  • 写回答

1条回答 默认 最新

  • doutiao2540 2019-03-05 17:14
    关注

    When you use a Many-to-many relationship, you can access the intermediate table with the pivot attribute. I see you already have the withPivot directive in the relationship, so you are ready to go.

    foreach($profile->attribute as $attribute) {
      $attribute->pivot->content; // The content in the intermediate table
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接