我是学习laravel的初学者,遇到了一个奇怪的问题。我希望一个表两次引用相同的查找表。例如,如果我有一个消息表,该表存储两个用户之间的消息。
如果我的邮件表结构如下:
我应该如何设置消息和用户模型,以便在显示消息索引时显示用户表中user1和user2的user.email?
如果每封邮件只有1个用户,我可以将列命名为“ user_id”,然后与users表建立一个belongsTo关系。
似乎可能涉及使用$ appends属性,但是在查询message表并将消息消息数据一起发送时,应该如何配置东西来检索2个用户的电子邮件地址?
答案 0 :(得分:0)
有人在laracasts论坛上为我提供了帮助,我认为我会在此处发布答案,以防它有所帮助。
答案是在消息模型中建立其他关系。喜欢:
公共函数userOne(){
return $this->belongsTo('App\User', 'user1');
}
公共函数userTwo(){
return $this->belongsTo('App\User', 'user2');
}
然后在视图中,假设您将消息作为$ messages传递,在foreach $ messages作为$ message循环中,使用optional()帮助器获取如下数据:
{{可选($ message-> userOne)->电子邮件}}