Skip to content

Releases: overtrue/laravel-follow

5.2.0

13 Mar 05:05
4e0dd6d
Compare
Choose a tag to compare

Added Laravel 11 support.

Full Changelog: 5.1.1...5.2.0

5.1.1

22 Jan 00:46
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 5.1.0...5.1.1

5.1.0

15 Feb 06:16
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 5.0.1...5.1.0

5.0.1

25 Jun 14:10
c91aa48
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 5.0.0...5.0.1

5.0.0

18 May 02:52
Compare
Choose a tag to compare

Now you can follow any models. #170

What’s Changed

  • Default table name user_followers changed to followables.
  • Renamed followers.follower_id to user_id(you can change it in the config file app/follow.php).
  • Renamed trait Overtrue\LaravelFollow\Followable to use Overtrue\LaravelFollow\Traits\Followable.
  • follow(), unfollow() and toggleFollow() only accept model used Overtrue\LaravelFollow\Traits\Followable trait now.
  • Removed Followable::areFollowingEachOther method.
  • rejectFollowRequestFrom(), acceptFollowRequestFrow(), hasRequestedToFollow() and isFollowedBy only accept model used Overtrue\LaravelFollow\Traits\Follower triat now.
  • Rename event property followingId to followable_id.
  • Added event property followable_type.
  • Added event property user_id.
  • Added trait Overtrue\LaravelFollow\Traits\Follower.

Full change: 59089d5

Migrate from 4.x

  1. Update composer.json:

    overtrue/laravel-follow:^5.0
    

    Then run composer update:

    composer update
  2. Update config file config/follow.php with 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,
    ];
  3. Update the trait Overtrue\LaravelFollow\Followable to Overtrue\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;
    
    /// <...>
  4. Add doctrine/dbal package:

    Before modifying a column, you must install the doctrine/dbal package using the Composer package manager.

    composer require doctrine/dbal
  5. 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']);
        });
    }
  6. Run migrate:

    php artisan migrate
  7. Done.

4.1.0

06 Apr 07:50
Compare
Choose a tag to compare
  • Fixed the problem of duplicate data insertion #166
  • Added approvedFollowings/notApprovedFollowings/approvedFollowers/notApprovedFollowers relations #167 .

Full Changelog: 4.0.0...4.1.0

4.0.0

10 Feb 07:03
Compare
Choose a tag to compare

Full Changelog: 3.1.1...4.0.0

3.1.1

23 Jan 06:12
f8eeb08
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 3.1.0...3.1.1

3.1.0

04 Nov 03:34
Compare
Choose a tag to compare

Order by followers count

You can query users order by followers count with following methods:

  • orderByFollowersCountDesc()
  • orderByFollowersCountAsc()
  • orderByFollowersCount(string $direction = 'desc')

example:

$users = User::orderByFollowersCountDesc()->get();
$mostPopularUser = User::orderByFollowersCountDesc()->first();

2.4.5

08 Jul 10:39
Compare
Choose a tag to compare
Fixed #161.