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

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

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

本文构建了有关使用流中的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

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

最新教程 更多>
  • 左连接为何在右表WHERE子句过滤时像内连接?
    左连接为何在右表WHERE子句过滤时像内连接?
    左JOIN CONUNDRUM:WITCHING小时在数据库Wizard的领域中变成内在的加入很有趣,当将c.foobar条件放置在上面的Where子句中时,据说左联接似乎会转换为内部连接。仅当满足A.Foo和C.Foobar标准时,才会返回结果。为什么要变形?关键在于其中的子句。当左联接的右侧值...
    编程 发布于2025-04-19
  • Java为何无法创建泛型数组?
    Java为何无法创建泛型数组?
    通用阵列创建错误 arrayList [2]; JAVA报告了“通用数组创建”错误。为什么不允许这样做?答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<myO...
    编程 发布于2025-04-19
  • 如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    编程 发布于2025-04-19
  • 如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    使用http request 上传文件上传到http server,同时也提交其他参数,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    编程 发布于2025-04-19
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示 仅通过Python的MlStripper 来简化剥离过程,Python Standard库提供了一个专门的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    编程 发布于2025-04-19
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。 This article delves into the differences betwee...
    编程 发布于2025-04-19
  • 运行Go可执行文件时为何出现“访问被拒绝”错误?
    运行Go可执行文件时为何出现“访问被拒绝”错误?
    在使用“访问“访问”的“访问”错误时,在使用GO编程语言时,遇到“访问“访问拒绝”错误的“访问”错误可能会令人沮丧。尝试从地图中删除项目时会发生一个这样的例子。 To resolve this issue, it's crucial to identify the underlying c...
    编程 发布于2025-04-19
  • 如何使用node-mysql在单个查询中执行多个SQL语句?
    如何使用node-mysql在单个查询中执行多个SQL语句?
    Multi-Statement Query Support in Node-MySQLIn Node.js, the question arises when executing multiple SQL statements in a single query using the node-mys...
    编程 发布于2025-04-19
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, AttributeError: SomeClass...
    编程 发布于2025-04-19
  • Python中何时用"try"而非"if"检测变量值?
    Python中何时用"try"而非"if"检测变量值?
    使用“ try“ vs.” if”来测试python 在python中的变量值,在某些情况下,您可能需要在处理之前检查变量是否具有值。在使用“如果”或“ try”构建体之间决定。“ if” constructs result = function() 如果结果: 对于结果: ...
    编程 发布于2025-04-19
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-04-19
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-04-19
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-04-19
  • 如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    在Visual Studio 2012 尽管已安装了MySQL Connector v.6.5.4,但无法将MySQL数据库添加到实体框架的“ DataSource对话框”中。为了解决这一问题,至关重要的是要了解MySQL连接器v.6.5.5及以后的6.6.x版本将提供MySQL的官方Visual...
    编程 发布于2025-04-19
  • 图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    在chrome 中删除一个频繁的问题时,在与Chrome and IE9中的图像一起工作时,遇到了一个频繁的问题。和“边境:无;”在CSS中。要解决此问题,请考虑以下方法: Chrome具有忽略“ border:none; none;”的已知错误,风格。要解决此问题,请使用以下CSS ID块创建带...
    编程 发布于2025-04-19

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

Copyright© 2022 湘ICP备2022001581号-3