”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 用Laravel和Stream轻松搭建社交网络

用Laravel和Stream轻松搭建社交网络

发布于2025-04-15
浏览:561

本文构建了有关使用流中的Laravel应用程序中添加“关注”功能的先前教程。 本部分着重于配置用于活动跟踪的模型,探索流的提要类型,检索feed并在视图中渲染。 [2 [2

stream laravel的Building a Social Network with Laravel and Stream? Easy! feedmanager

简化了feed操作,提供了预构建的feeds(用户,新闻,通知)。

流stream将数据存储为(actor,动词,对象,时间,加自定义数据)。

lastecontroller
    feedManager
  • 在显示之前富集流支持各种供稿类型(新闻,通知),允许自定义模板用于不同的活动。 [2
  • 流将数据表示为活动至少:演员,动词​​,对象和时间。 也允许自定义字段。
  • 引用模型实例。
  • [2 [2
  • 示例:在[ post 模型中定义类帖子扩展了模型 { // ...其他代码... /** *流:邮政创建的活动动词。 */ 公共功能活动verb() { 返回“创建”; } }
  • 利用feedmanager:
  • feedmanager
  • 简化了feed交互。 它是通过
config/app.php

中设置的立面别名访问的。 [2 提供预构建的feeds:用户,新闻和通知。 此示例主要使用新闻和通知提要。 有关其他提要类型的更多详细信息

。 [2

lastecontroller
    已更新为使用
  • ,以进行有效的关注/unullow contion: // app/http/controllers/lastecontroller.php 公共功能关注(用户$用户) { if(! auth :: user() - > clasts() - >创建(['target_id'=> $ user-> id]); feedManager ::关注器(auth :: id(),$ user-> id); 返回() - > with('success','现在关注'。$ user-> name); } 别的 { 返回() - > with('错误','已经关注此用户。'); } } 公共功能取消关注(用户$用户) { if(auth :: user() - > isfollowing($ user-> id)){ $ laste = auth :: user() - > lasts() - >其中('target_id',$ user-> id) - > first(); feedManager :: Untollowuser(auth :: id(),$ lastion-> target_id); $ lastion-> delete(); 返回() - > with('success','noctolded'。$ user-> name); } 别的 { 返回() - > with('错误','不关注此用户。'); } }
  • [2 use getStream \ straplaravel \ ronich; 类FeedScontroller扩展了控制器 { // ...其他代码... 公共功能新闻源(请求$请求) { $ feed = feedmanager :: getNewSfeeds($ request-> user() - > id)['timeline']; $ acvision = $ feed-> getActivities(0,25)['结果']; $ acvision = $ this-> renich() - >富集($ active); 返回视图('feed.newsfeed',['active'=> $ active]); } 私有功能renrich() { 返回新的丰富; } // ...其他方法... }
  • enrich 方法处理视图渲染的数据转换。 定义了一条路由以访问此控制器操作。
  • newsfeed
使用局部(

)进行渲染单个活动的单个活动。 自定义活动部分(例如, create.blade.php 为post creation创建)是在[中创建的。 [2 [2 [2 {{$ active ['actor'] ['name']}}

创建了一个标题为
class Post extends Model
{
    // ... other code ...

    /**
     * Stream: Activity verb for post creation.
     */
    public function activityVerb()
    {
        return 'created';
    }
}
模型已更新为包括通知feed处理:

; } 公共功能活动verb() { 返回“关注”; } 公共功能活动Extradata() { 返回['caster'=> $ this-> target,'follower'=> $ this->用户]; } }

为通知feed创建了类似的控制器操作,路由和视图( notification.blade.php )。 单独的部分()用于遵循通知。

结论:

流简化了在Laravel应用程序中添加强大的提要功能。 该教程演示了如何跟踪各种活动,管理不同的饲料类型并在视图中有效地渲染它们。 鼓励进一步探索流的功能。 [2

常见问题解答部分写得很好,并提供了有用的信息。 不需要重大更改,但是较小的格式调整可以提高可读性。 考虑为更好的视觉组织使用编号列表或粗体键项。

最新教程 更多>
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-05-01
  • input: Why Does "Warning: mysqli_query() expects parameter 1 to be mysqli, resource given" Error Occur and How to Fix It?

output: 解决“Warning: mysqli_query() 参数应为 mysqli 而非 resource”错误的解析与修复方法
    input: Why Does "Warning: mysqli_query() expects parameter 1 to be mysqli, resource given" Error Occur and How to Fix It? output: 解决“Warning: mysqli_query() 参数应为 mysqli 而非 resource”错误的解析与修复方法
    mysqli_query()期望参数1是mysqli,resource给定的,尝试使用mysql Query进行执行MySQLI_QUERY_QUERY formation,be be yessqli:sqli:sqli:sqli:sqli:sqli:sqli: mysqli,给定的资源“可能发...
    编程 发布于2025-05-01
  • 如何使用PHP将斑点(图像)正确插入MySQL?
    如何使用PHP将斑点(图像)正确插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call ...
    编程 发布于2025-05-01
  • 同实例无需转储复制MySQL数据库方法
    同实例无需转储复制MySQL数据库方法
    在同一实例上复制一个MySQL数据库而无需转储在同一mySQL实例上复制数据库,而无需创建InterMediate sqql script。以下方法为传统的转储和IMPORT过程提供了更简单的替代方法。 直接管道数据 MySQL手动概述了一种允许将mysqldump直接输出到MySQL clie...
    编程 发布于2025-05-01
  • 如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    为有效的slug生成首先,该函数用指定的分隔符替换所有非字母或数字字符。此步骤可确保slug遵守URL惯例。随后,它采用ICONV函数将文本简化为us-ascii兼容格式,从而允许更广泛的字符集合兼容性。接下来,该函数使用正则表达式删除了不需要的字符,例如特殊字符和空格。此步骤可确保slug仅包含...
    编程 发布于2025-05-01
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-05-01
  • 解决Spring Security 4.1及以上版本CORS问题指南
    解决Spring Security 4.1及以上版本CORS问题指南
    弹簧安全性cors filter:故障排除常见问题 在将Spring Security集成到现有项目中时,您可能会遇到与CORS相关的错误,如果像“访问Control-allo-allow-Origin”之类的标头,则无法设置在响应中。为了解决此问题,您可以实现自定义过滤器,例如代码段中的MyFi...
    编程 发布于2025-05-01
  • 如何在无序集合中为元组实现通用哈希功能?
    如何在无序集合中为元组实现通用哈希功能?
    在未订购的集合中的元素要纠正此问题,一种方法是手动为特定元组类型定义哈希函数,例如: template template template 。 struct std :: hash { size_t operator()(std :: tuple const&tuple)const {...
    编程 发布于2025-05-01
  • Go web应用何时关闭数据库连接?
    Go web应用何时关闭数据库连接?
    在GO Web Applications中管理数据库连接很少,考虑以下简化的web应用程序代码:出现的问题:何时应在DB连接上调用Close()方法?,该特定方案将自动关闭程序时,该程序将在EXITS EXITS EXITS出现时自动关闭。但是,其他考虑因素可能保证手动处理。选项1:隐式关闭终止数...
    编程 发布于2025-05-01
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-05-01
  • 如何在Chrome中居中选择框文本?
    如何在Chrome中居中选择框文本?
    选择框的文本对齐:局部chrome-inly-ly-ly-lyly solument 您可能希望将文本中心集中在选择框中,以获取优化的原因或提高可访问性。但是,在CSS中的选择元素中手动添加一个文本 - 对属性可能无法正常工作。初始尝试 state)</option> < op...
    编程 发布于2025-05-01
  • 在Java中如何为PNG文件添加坐标轴和标签?
    在Java中如何为PNG文件添加坐标轴和标签?
    如何用java 在现有png映像中添加轴和标签的axes和labels如何注释png文件可能具有挑战性。与其尝试可能导致错误和不一致的修改,不如建议在图表创建过程中集成注释。使用JFReechArt import java.awt.color; 导入java.awt.eventqueue; 导入...
    编程 发布于2025-05-01
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-05-01
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-05-01
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-05-01

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3