【发布时间】:2020-11-08 02:52:11
【问题描述】:
我有一个具有这种关系的用户模型:
public function users(){
return $this->hasMany('App\User','parent_id');
}
它旨在让您关注的用户能够在您的供稿中看到他们的帖子。 当我关注某人时,我会这样做(在控制器内):
public function follow($myId, $hisId){
$me = User::find($myId);
$him = User::find($hisId);
$me->users()->save($him);
$me->save();
}
哪个有效。问题是当我试图取消关注时,我最终删除了用户本身,而我 只想删除我和他的关系。我正在这样做:
public function unfollow($myId,$hisId){
$me = User::find($myId);
$him = User::find($hisId);
$me->users()->delete($him);
$me->save();
}
非常感谢任何帮助。
【问题讨论】:
-
执行
follow和unfollow时你不是在User实例吗?删除做它的工作,删除。 Attach 和 detach 做的就是附加或分离。 -
不,当我在某人的个人资料中点击关注时,我会进行 ajax 调用,端点 URL 会进入这些函数,我和他的 ID 在 URL 中传递。
-
是的,没有.. 是的.. 你有一个经过身份验证的用户吗?还是每个人都可以通过使用随机 ID 调用请求来取消关注任何人?
-
首先,要回答您的问题,请改用
detach()。 -
是的,我有一个经过身份验证的用户。关注或取消关注按钮不会向客人显示。谢谢,我会尝试分离。
标签: database laravel eloquent eloquent-relationship