摘要:介紹有關用戶之間的相互關注這樣的應用場景還是很常見的每個平臺都會有這樣類似的需求就比如和知乎當然還有最熟悉的每個人可以有關注者和粉絲建立模型表這里我們去建立一個中間表可以想象得到的是這張表里包含了兩個用戶的我們可以去創建一個創建完我們的表
介紹
有關用戶之間的相互關注這樣的應用場景還是很常見的 每個平臺都會有這樣類似的需求 就比如Segmentfault和知乎
當然還有最熟悉的Github每個人可以有關注者和粉絲
建立模型表這里我們去建立一個中間表 可以想象得到的是這張表里包含了兩個用戶的id 我們可以去創建一個Model
$ php artisan make:model Follow -m
創建完我們的表之后 我們去完善下表的字段信息
Schema::create("follows", function (Blueprint $table) { $table->increments("id"); $table->integer("follower_id")->unsigned()->index(); $table->integer("followed_id")->unsigned()->index(); $table->timestamps(); });
定義完畢之后去遷移下數據表
$ php artisan migrate定義模型方法
寫完我們的數據表 我們是將關注的信息存放在follows這個數據表的 因為這是用戶與用戶之間的關聯
并不是之前的用戶與帖子或文章這樣的模型關聯 其實實現的道理是一樣的
我們就可以在User Model里去定義對應的關聯
//用戶關注 public function following() { return $this->belongsToMany(self::class,"follows","follower_id","followed_id")->withTimestamps(); } //用戶的粉絲 public function followers() { return $this->belongsToMany(self::class,"follows","followed_id","follower_id")->withTimestamps(); } //關注用戶 public function followThisUser($user) { return $this->following()->toggle($user); }
因為用戶與用戶之間也是一種多對多的關系 所以我將關注用戶的方法寫成followThisUser
定義方法路由接下來就可以去定義相應的方法路由了 這里為了使用方便我定義了一個控制器
$ php artisan make:controller FollowController
首先我們去定義一下我們的路由
Route::post("/user/follow","FollowersController@follow");
如果用戶去關注另一個用戶的話 只需要去執行follow方法 而這個方法也是一個toggle式的操作
當然我們在執行
$follow = $user->followThisUser($userId)
這個方法是他會返回一個數組對象 如果是執行attach方法的話
那么$follow["attached"]是$userId的值
如果這樣的話我們就可以知道followThis這個方法到底是執行了attach還是detach方法了
那么接著我們就可以去增加一個用戶的粉絲數或者去通知用戶發送一個消息這樣的操作了
所以你可以在執行完成之后的邏輯是這樣的
$follow = user()->followThisUser($userId); //如果用戶關注了另一個用戶 if(count($followed["attached"])>0){ //可以去通知用戶 修改用戶的關注人數等數據 return response()->json(["followed" => true]); }
當然如果我們需要拿到一個用戶的關注的人和粉絲的話 可以去執行
$user->following
以及
$user->followers
這樣的話我們就可以拿到對應的用戶數據信息了
其實整個實現起來就和我們對一篇帖子進行點贊一樣 只不過對象變成了用戶與用戶之間
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22599.html
摘要:廢話不多說,下面我簡單介紹一下兩個包的用法吧。還有的是這里使用了,如何去理解以及更好地使用最后,當然是要感謝超哥。經討論更名為更名為更名為更名為 showImg(https://pigjian.com/storage/post_img/2017-04-12/follow-vote.png); 本文主要介紹兩個包: Laravel - Follow : https://github.co...
摘要:然而,我們需要注意的是僅是軟件設計模式依賴注入的一種便利的實現形式。容器本身不是依賴注入的必要條件,在框架他只是讓其變得更加簡便。首先,讓我們探索下為什么依賴注入是有益的。繼續深入讓我們通過另一個示例來加深對依賴注入的理解。 聲明:本文并非博主原創,而是來自對《Laravel 4 From Apprentice to Artisan》閱讀的翻譯和理解,當然也不是原汁原味的翻譯,能保證9...
摘要:事件驅動編程是圖形用戶界面和其他應用程序例如應用程序中使用的主要范例,用于執行某些操作來響應用戶輸入。我們來看一下事件驅動編程帶來的收益。現在讓我們看看采用事件驅動編程方法如何實現上述相同的功能。 在這篇文章中我們將了解到什么是事件驅動編程以及在Laravel中如何開始構建一個事件驅動應用,同時我們還將看到如何通過事件驅動編程來對應用程序的邏輯進行解耦。 在開始之前,先說明一下這篇文章...
摘要:默認的應用哈希驅動通過新增的配置文件來控制。你可以在我們的文章中學習到更多的關于密碼哈希算法的內容方法在類中引入了兩個新的生成唯一的方法引入了兩個新的方法來生成。 showImg(https://segmentfault.com/img/remote/1460000013229904?w=1400&h=708); Laravel 5.6 Laravel 5.6正式成為laravel框架...
摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因為設計獅顏值同學也安利了這部。劇情簡介在獨身又勞累的小林劃重點一名程序員身邊突然出現的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...
閱讀 925·2021-09-09 09:32
閱讀 2900·2021-09-02 10:20
閱讀 2715·2021-07-23 11:24
閱讀 838·2019-08-30 15:54
閱讀 3642·2019-08-30 15:54
閱讀 1354·2019-08-30 11:02
閱讀 2855·2019-08-26 17:40
閱讀 1138·2019-08-26 13:55