Laravel 在同一型号上有许多相同的产品
我有两个类用户和消息 我试图从user类中获得对用户消息的回复 在用户类中Laravel 在同一型号上有许多相同的产品,laravel,eloquent,laravel-5.3,laravel-eloquent,Laravel,Eloquent,Laravel 5.3,Laravel Eloquent,我有两个类用户和消息 我试图从user类中获得对用户消息的回复 在用户类中 public function replies() { return $this->messages->replies; } 然而,这似乎不起作用,所以我正在尝试hasManyThrough操作 public function replies() { return $this->hasManyThrough(Message::class,Message:class,'reply_i
public function replies()
{
return $this->messages->replies;
}
然而,这似乎不起作用,所以我正在尝试hasManyThrough操作
public function replies()
{
return $this->hasManyThrough(Message::class,Message:class,'reply_id','user_id','id');
}
这也不起作用,因为存在唯一的表问题
执行此操作的最佳方式是什么
我应该用生的吗
public function replies()
{
return Message::whereIn('reply_id', $this->messages->pluck('id'))->get()
}
请记住,我可能还想执行分页和排序功能当hasManyThrough只是一对多关系时,为什么要使用它
在您的情况下,我要做的是在用户对象中使用$this->hasMany'\App\Models\Message'
然后在消息对象中使用$this->belongsTo'\App\Models\User'
然后,您可以从用户对象执行$User->messages->repress
范例
用户对象:
class User extends Model {
public function messages() {
return $this->hasMany('App\Models\Message');
}
}
消息对象:
class Message extends Model {
public function user() {
return $this->belongsTo('App\Models\User');
}
}
然后,在某种控制器功能中,例如,您可以执行以下操作:
$user = User::with('messages')->findOrFail(1);
它将返回用户对象及其关联的消息
那么你可以做:
$user->messages->replies
我不认为你是对的,我正试图让其他用户回复他的信息。我想通过使用hasmanythrough,我会使用reply_to作为其自身的外键,但如果没有别名,我会遇到问题您想从用户模型中获取所有消息的所有回复吗?@aimme没错,使用“with”如何?