Laravel 关注者/关注关系

2024-05-03

我正在尝试在 laravel 中制作一个简单的关注者/关注系统,没什么特别的,只需单击一个按钮即可关注或取消关注,并显示关注者或关注你的人。

我的问题是我不知道如何建立模型之间的关系。

这些是迁移:

-用户迁移:

Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();
        $table->string('email');
        $table->string('first_name');
        $table->string('last_name');
        $table->string('password');
        $table->string('gender');
        $table->date('dob');
        $table->rememberToken();
    });

-关注者迁移:

Schema::create('followers', function (Blueprint $table) {

        $table->increments('id');
        $table->integer('follower_id')->unsigned();
        $table->integer('following_id')->unsigned();
        $table->timestamps();        
    });
}

这是模型:

-用户模型:

   class User extends Model implements Authenticatable
{
    use \Illuminate\Auth\Authenticatable;
    public function posts()
    {
        return $this->hasMany('App\Post');
    }

    public function followers()
    {
        return $this->hasMany('App\Followers');
    }

}

-追随者模型基本上是空的,这就是我陷入困境的地方

我尝试过这样的事情:

class Followers extends Model
{
    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

但没有成功。

另外,我想问你是否可以告诉我如何编写“关注”和“显示关注者/关注”功能。我已经阅读了我能找到的所有教程,但没有用。我似乎无法理解。


你需要意识到“追随者”也是一个App\User。所以你只需要一种型号App\User用这两种方法:

// users that are followed by this user
public function following() {
    return $this->belongsToMany(User::class, 'followers', 'follower_id', 'following_id');
}

// users that follow this user
public function followers() {
    return $this->belongsToMany(User::class, 'followers', 'following_id', 'follower_id');
}

User $a想要关注用户$b:

$a->following()->attach($b);

User $a想要停止关注用户$b:

$a->following()->detach($b);

获取用户的所有关注者$a:

$a_followers = $a->followers()->get();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 关注者/关注关系 的相关文章

随机推荐

  • 我需要将 java EE、jsf、jboss eap 6.3 primefaces 应用程序迁移到 wildfly 8.2.1

    将 java EE 应用程序 jsf jboss eap 6 3 primefaces 迁移到 wildfly 8 2 1 该应用程序在 jboss 6 3 上正常运行 在 Wildfly 8 上部署该应用程序后 该应用程序存在错误 部署通
  • Razor 支持 lambda 表达式吗?

    Razor 视图引擎是否支持 lambda 表达式 匿名方法 我很难在 Razor 中表达以下内容 Model ToList ForEach i gt if i DealerName null
  • MVC模型未成功更新但找不到原因

    这让我抓狂 我不断收到以下异常 System InvalidOperationException Models Expense 类型的模型未成功更新 在System Web Mvc Controller UpdateModel TModel
  • iPhone:跟踪/识别个人触摸

    我有一个关于 iPhone 上跟踪触摸的快速问题 我似乎无法对此得出结论 因此非常感谢任何建议 想法 我希望能够跟踪和识别 iPhone 上的触摸 即 基本上每次触摸都有一个起始位置和当前 移动位置 触摸存储在 std vector 中 一
  • C# 编译器错误?为什么这个隐式用户定义转换无法编译?

    给定以下结构 public struct Foo
  • 获取:使用获取响应设置变量并从函数返回[重复]

    这个问题在这里已经有答案了 我对 JavaScript 和 React 还很陌生 我有一个来自组件的回调 该组件从给定 id 的服务器获取 customer name 提取工作正常 console log 正确打印全名 但最后一个 then
  • 在 JavaScript 中压缩 Blob

    我需要使用 ajax 向服务器发送一个 blob 但它最终可能会变得有点大 我想减少上传时间 我已经尝试过 jszip 但这只是在 zip 中给了我一个空文件 我也尝试过 btoa 但事实证明编码值最终只是 object Blob 而不是实
  • 使用存储桶级别权限调用 PutObject 操作时出现访问被拒绝的情况

    我按照上面的例子http docs aws amazon com IAM latest UserGuide access policies examples html iam policy example s3 http docs aws
  • 如何使 UL 元素内的列表项居中?

    如何在不使用额外的 div 或元素的情况下将列表项集中在 ul 内 我有以下内容 我想text align center就可以了 我似乎无法弄清楚 ul li test li li test li li test li li test li
  • 我应该使用哪种协议来传输音频(非直播)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 MySQL 5、简单成员资格提供程序、ASP.NET MVC4 和实体框架 5

    我在尝试着 使用 ASP NET MVC 4 对 MySQL 使用基于简单成员资格提供程序的身份验证默认 Web 应用程序配置为使用 MySQL 使用以下给出的教程 http www nsilverbullet net 2012 11 07
  • 仅复制对象一部分的优雅方法[重复]

    这个问题在这里已经有答案了 我想通过仅复制其中的一些属性来从更大的对象创建一个新对象 我所知道的所有解决方案都不是很优雅 我想知道是否有更好的选择 如果可能的话是原生的 没有像下面代码末尾那样的附加功能 这是我现在通常做的事情 I want
  • Swing 组件 - 禁用布局中的调整大小

    我有一个自定义 GUI 组件 它基于 Swing 的 JPanel 该组件放置在使用 BorderLayout 的 JFrame 中 当我调整框架大小时 该组件会不断调整大小 我怎样才能避免这种情况 我希望组件无论发生什么情况都保持相同的大
  • 将表情符号列表替换为其图像

    我有一个数组 emoticons smile1 gif smile2 gif D smile3 gif 然后我有一个带有文本的变量 var text this is a simple test 和一个带有网站 url 的变量 var url
  • 同位素网格+角印去除空白,排序逻辑

    这个问题与这个旧问题有关 同位素网格布局使用空白空间 https stackoverflow com questions 11612399 isotope grid layout use empty space 这是我正在使用的小提琴 ht
  • 如何使用过程填充数据库

    我有大约 15 个不同的表 其中填充了不同的数据和不同的实体关系 我需要创建一个脚本 用这些表的内容填充我的数据库 脚本完成后 我使用 sqlplus 在 cmd 中运行它 然后使用 START文件路径 我有两个不同的 sql 文件 一个名
  • Python C-Api 线程问题

    我正在编写一个 C 程序 它使用用 python 编写的网络库 我将 python lib 与 python C api 一起嵌入 该库异步发送所有请求 并在请求完成时通过信号通知我 这意味着理论上 实际上我有两个与线程相关的问题 从 c
  • 现代正则表达式引擎可以解析什么样的形式语言?

    人们有时会说 你不能用正则表达式解析 X 因为 X 不是正则语言 然而 根据我的理解 现代正则表达式引擎可以匹配的不仅仅是正则语言乔姆斯基的感觉 http en wikipedia org wiki Chomsky hierarchy 我的
  • Android:Google 登录令牌无效

    我通过 Android 中的 google 登录收到的令牌收到错误 error invalid token error description 无效值 我还注意到 与我在 iOS 中获得的令牌相比 我的令牌看起来有点短 ya29 4AFYx
  • Laravel 关注者/关注关系

    我正在尝试在 laravel 中制作一个简单的关注者 关注系统 没什么特别的 只需单击一个按钮即可关注或取消关注 并显示关注者或关注你的人 我的问题是我不知道如何建立模型之间的关系 这些是迁移 用户迁移 Schema create user