」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 用Laravel和Stream輕鬆搭建社交網絡

用Laravel和Stream輕鬆搭建社交網絡

發佈於2025-04-15
瀏覽:997

本文構建了有關使用流中的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 fil...
    程式設計 發佈於2025-05-01
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於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> < o...
    程式設計 發佈於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