CakePHP Twitter 克隆:无法让关注系统工作

2023-12-23

抱歉,标题不具有描述性,但我不知道如何表达它。目前,我正在尝试使用 cakePHP 开发 Twitter 克隆,因为我是网络编程新手。我带了3张桌子:

用户(ID、姓名)

  • id是自动生成的id
  • 用户名

推文(id、内容、user_id)

  • id是自动生成的id
  • 内容是推文的文本
  • user_id 是发帖用户的 ID

关注者(id、user_id、following_id)

  • id是自动生成的id
  • user_id 是执行以下操作的用户
  • follow_id 是被关注的用户

现在,几乎一切都基本可以正常工作,甚至连跟随功能也有所改善。但是,我认为我可能设置了错误的模型关系。事实上,我很确定这是错误的。

现在,这些是模型关系:

  • User:有很多推文,有很多关注者
  • Tweets:属于用户
  • 关注者:属于用户

我很确定追随者关系是错误的,但这就是我一直在处理的问题。现在,有效的是用户登录/注销、会话、发帖、删除您自己的帖子以及关注其他用途(然后能够看到他们的推文)。

现在不起作用的是当我尝试获取我正在关注的人或正在关注我的人的列表时。问题是我不确定如何访问该数据。

我想要一个屏幕,我可以在其中单击链接来查看我关注的所有人员,然后查看他们的所有最新推文。

例如,我相信我可以使用 find() 查询来获取我关注的所有人员的列表,但正如您从上面的关注者表中看到的,该查询仅返回关注者的用户 ID,并且追随者。从这些数据中,我如何获取他们的姓名和最新推文?

我要进行两次查找吗?我是否可以在我的模型关系中重新定义它,以便在我的 ctp 文件中,我可以仅通过 php 浏览并使用类似以下内容的内容:

$this->$data['Tweet']['userID']
$this->$data['User']['name']
$this->$data['Tweet']['content']

抱歉,我不确定我的解释是否正确......

不过,我确实希望我的意图是明确的。任何建议表示赞赏!

谢谢你!


app/models/user.php

class User extends AppModel{
      var $name = 'User';

      var $hasAndBelongsToMany = array(
            'Follower' => array(
                  'className'             => 'Follower',
                  'joinTable'             => 'user_users',
                  'foreignKey'            => 'user_id',
                  'associationForeignKey' => 'child_user_id'
            )
      )
}

app/models/follower.php

class Follower extends AppModel{
      var $name     = 'Follower';
      var $useTable = 'users';
}

您必须创建一个包含 user_id 和 child_user_id 字段的表 user_users。 child_user_id 将是关注者 ID,如果您愿意,您可以将其命名为关注者 id,但如果您将来需要建立类似的关系,则可能会造成混乱。

试试看。

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

CakePHP Twitter 克隆:无法让关注系统工作 的相关文章

  • Readfile 从大文件中读取 0 字节?

    我正在尝试通过以下方式发送一个大文件readfile 但是 没有任何内容发送到浏览器 并且readfile 回报0 not false 我尝试发送的文件大小为 4GiB 并且可由 PHP 读取 我正在设置set time limit 0 以
  • 正则表达式上的换行符

    我试图替换两个标签之间的所有内容 但我无法构建正确的表达式 这就是我所做的
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • php源代码到PO文件生成器

    我必须将我的所有回显 打印字符串转换为PHP源代码代码文件到PO file 为了语言翻译 有批次吗对流器可用于相同的 我如何做到这一点 make gettext在您的服务器上运行 setup a 翻译适配器 例如带有 gettext 适配器
  • 如何隐藏 URL 中的锚标记

    如何隐藏地址栏中以下链接 href 的哈希值 a href index php dev name 所以它会将我重定向到index php dev name 但我希望地址栏只显示index php 您可以使用 Javascript oncli
  • 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

    我正在使用 PHP Selenium Webdriver 包装器Facebook https github com facebook php webdriver 任何人都可以给我一个如何单击或从选择下拉菜单中选择选项的示例吗 我已经尝试过这
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • PHP - 类外 use 关键字和类内 use 关键字的区别

    伙计们 美好的一天 只是想问一下有什么区别use之外的class and use在 的里面class 我也用谷歌搜索过 但我的问题与答案不匹配 Example namespace App Http Controllers Auth use
  • 如何在HTML中的PHP中注释掉HTML和PHP?

    这是我想注释掉的一行代码 h1 class post title a href title a h1 一种流行的注释方法是分别注释 html 和 php 有一个更好的方法吗
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 error type OAuthException 代码 400 error message 平台应用无效 我正在遵循此
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • Stream_context_set_params 不适用于 ssh2.sftp 包装器

    我想使用类似的功能here http www php net manual en function stream notification callback php 请检查以下代码 function notify notification
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • ZF3/2 - 如何捕获 EVENT_DISPATCH 侦听器中引发的异常?

    有什么方法可以在 EVENT DISPATCH 监听器中抛出异常吗 class Module public function onBootstrap EventInterface event application event gt get

随机推荐