5.0.0
Now you can follow any models. #170
What’s Changed
- Default table name
user_followerschanged tofollowables. - Renamed
followers.follower_idtouser_id(you can change it in the config fileapp/follow.php). - Renamed trait
Overtrue\LaravelFollow\Followabletouse Overtrue\LaravelFollow\Traits\Followable. follow(),unfollow()andtoggleFollow()only accept model usedOvertrue\LaravelFollow\Traits\Followabletrait now.- Removed
Followable::areFollowingEachOthermethod. rejectFollowRequestFrom(),acceptFollowRequestFrow(),hasRequestedToFollow()andisFollowedByonly accept model usedOvertrue\LaravelFollow\Traits\Followertriat now.- Rename event property
followingIdtofollowable_id. - Added event property
followable_type. - Added event property
user_id. - Added trait
Overtrue\LaravelFollow\Traits\Follower.
Full change: 59089d5
Migrate from 4.x
-
Update
composer.json:overtrue/laravel-follow:^5.0Then run composer update:
composer update
-
Update config file
config/follow.phpwith the following code:<?php return [ /** * Use uuid as primary key. */ 'uuids' => false, /* * User tables foreign key name. */ 'user_foreign_key' => 'user_id', /* * Table name for followers table. */ 'followables_table' => 'followables', /** * Model class name for followers table. */ 'followables_model' => \Overtrue\LaravelFollow\Followable::class, ];
-
Update the trait
Overtrue\LaravelFollow\FollowabletoOvertrue\LaravelFollow\Traits\Follower:- use Overtrue\LaravelFollow\Followable; +use Overtrue\LaravelFollow\Traits\Followable; +use Overtrue\LaravelFollow\Traits\Follower; class User extends Authenticatable { use HasApiTokens; use HasFactory; use Notifiable; + use Follower; use Followable; /// <...>
-
Add
doctrine/dbalpackage:Before modifying a column, you must install the
doctrine/dbalpackage using the Composer package manager.composer require doctrine/dbal
-
Create a migration file:
php artisan make:migration update_user_follower_to_followables --table=user_follower
With contents:
public function up() { Schema::rename('user_follower', 'followables'); Schema::table('followables', function (Blueprint $table) { $table->renameColumn('following_id', 'followable_id'); $table->renameColumn('follower_id', config('follow.user_foreign_key', 'user_id')); $table->string("followable_type")->default(addslashes((new User)->getMorphClass())); $table->index(config('follow.user_foreign_key', 'user_id')); $table->index(['followable_type', 'accepted_at']); }); }
-
Run migrate:
php artisan migrate
-
Done.