我正在构建一个PM系统,我遇到了问题。
这是我的PM表:
id, user_id, to, content
现在,在我的收件箱页面中,我提取了向我发送消息的所有用户。
$pms = DB::table('pm')->select('user_id')->distinct()->where('to', Auth::id())->get();
问题是,如果我向select方法添加更多列,它将不再是明显的......
答案 0 :(得分:0)
您可以使用Eloquent及其 whereHas()方法轻松完成此操作。
首先,在模型中定义模型和关系:
class Message extends Model {
protected $table = 'pm';
}
class User extends Model {
public function sent_messages() {
return $this->hasMany(Message::class);
}
}
现在,抓取所有拥有相关消息模型的用户,其中到列与您的ID匹配:
$usersThatSentMeMessages = User::whereHas('sent_messages', function($query) {
$query->where('to', Auth::id());
});