Theo dõi và hủy theo dõi trong Laravel

Tôi đang cố gắng tạo một hệ thống theo dõi/theo dõi đơn giản trong laravel, không có gì đặc biệt, chỉ cần nhấp vào nút để theo dõi hoặc hủy theo dõi và hiển thị những người theo dõi hoặc những người đang theo dõi bạn

Rắc rối của tôi là tôi không thể tìm ra cách tạo mối quan hệ giữa các mô hình

Đây là những cuộc di cư

-Di chuyển người dùng

Schema::create['users', function [Blueprint $table] {
        $table->increments['id'];
        $table->timestamps[];
        $table->string['email'];
        $table->string['first_name'];
        $table->string['last_name'];
        $table->string['password'];
        $table->string['gender'];
        $table->date['dob'];
        $table->rememberToken[];
    }];

-Người theo dõi di chuyển

Schema::create['followers', function [Blueprint $table] {

        $table->increments['id'];
        $table->integer['follower_id']->unsigned[];
        $table->integer['following_id']->unsigned[];
        $table->timestamps[];        
    }];
}

Và đây là các mẫu

-Mô hình người dùng

   class User extends Model implements Authenticatable
{
    use \Illuminate\Auth\Authenticatable;
    public function posts[]
    {
        return $this->hasMany['App\Post'];
    }

    public function followers[]
    {
        return $this->hasMany['App\Followers'];
    }

}

-Và mô hình người theo dõi về cơ bản là trống rỗng, đây là nơi tôi bị mắc kẹt

Tôi đã thử một cái gì đó như thế này

class Followers extends Model
{
    public function user[]
    {
        return $this->belongsTo['App\User'];
    }
}

nhưng nó không hoạt động

Ngoài ra, tôi muốn hỏi liệu bạn có thể cho tôi biết cách viết chức năng "theo dõi" và "hiển thị người theo dõi/theo dõi" không. Tôi đã đọc mọi hướng dẫn tôi có thể tìm thấy nhưng vô ích. Tôi dường như không thể hiểu được

Nếu bạn muốn một số yêu cầu theo dõi cần được chấp nhận bởi người dùng đang được theo dõi, chỉ cần ghi đè phương thức NeedToApproveFollowRequests[] trong mô hình sử dụng đặc điểm Có thể theo dõi bằng logic tùy chỉnh của bạn

public function needsToApproveFollowRequests[]
{
    // Your custom logic here
    return [bool] $this->private;
}

tổng hợp

// followings count
$user->followings[]->count[];
$user->approvedFollowings[]->count[];
$user->notApprovedFollowings[]->count[];

// with query where
$user->followings[]->where['gender', 'female']->count[];

// followers count
$user->followers[]->count[];
$user->approvedFollowers[]->count[];
$user->notApprovedFollowers[]->count[];

Danh sách có thuộc tính

php artisan vendor:publish
9

php artisan vendor:publish
0

Đính kèm trạng thái theo dõi của người dùng vào bộ sưu tập có thể theo dõi

Bạn có thể sử dụng

use Overtrue\LaravelFollow\Traits\Follower;

class User extends Authenticatable
{
    use Follower;

    
}
0 để đính kèm trạng thái theo dõi người dùng, nó sẽ đặt thuộc tính
use Overtrue\LaravelFollow\Traits\Follower;

class User extends Authenticatable
{
    use Follower;

    
}
1 cho từng mô hình của
use Overtrue\LaravelFollow\Traits\Follower;

class User extends Authenticatable
{
    use Follower;

    
}
2

cho mô hình

php artisan vendor:publish
1

Cho
use Overtrue\LaravelFollow\Traits\Follower;

class User extends Authenticatable
{
    use Follower;

    
}
3

php artisan vendor:publish
2

Để phân trang

php artisan vendor:publish
3

Thứ tự theo số lượng người theo dõi

Bạn có thể truy vấn người dùng đặt hàng theo số lượng người theo dõi bằng các phương pháp sau

  • use Overtrue\LaravelFollow\Traits\Follower;
    
    class User extends Authenticatable
    {
        use Follower;
    
        
    }
    4
  • use Overtrue\LaravelFollow\Traits\Follower;
    
    class User extends Authenticatable
    {
        use Follower;
    
        
    }
    5
  • use Overtrue\LaravelFollow\Traits\Follower;
    
    class User extends Authenticatable
    {
        use Follower;
    
        
    }
    6

thí dụ

php artisan vendor:publish
4

vấn đề N+1

Để tránh sự cố N+1, bạn có thể sử dụng tải háo hức để giảm thao tác này xuống chỉ còn 2 truy vấn. Khi truy vấn, bạn có thể chỉ định mối quan hệ nào sẽ được tải háo hức bằng phương pháp

use Overtrue\LaravelFollow\Traits\Follower;

class User extends Authenticatable
{
    use Follower;

    
}
7

php artisan vendor:publish
5

Sự kiện

EventDescription
use Overtrue\LaravelFollow\Traits\Follower;

class User extends Authenticatable
{
    use Follower;

    
}
8Được kích hoạt khi mối quan hệ được tạo. ________ 89 Được kích hoạt khi mối quan hệ bị xóa

❤️Tài trợ cho tôi

如果你喜欢我的项目并想支持它,点击这里❤️

Dự án được hỗ trợ bởi JetBrains

Rất cảm ơn Jetbrains đã vui lòng cung cấp giấy phép để tôi làm việc trong dự án này và các dự án mã nguồn mở khác

Đóng góp

Bạn có thể đóng góp theo một trong ba cách

  1. Gửi báo cáo lỗi bằng cách sử dụng trình theo dõi sự cố
  2. Trả lời câu hỏi hoặc sửa lỗi trên trình theo dõi vấn đề
  3. Đóng góp các tính năng mới hoặc cập nhật wiki

Quá trình đóng góp mã không phải là rất chính thức. Bạn chỉ cần đảm bảo rằng bạn tuân theo các nguyên tắc mã hóa PSR-0, PSR-1 và PSR-2. Mọi đóng góp mã mới phải đi kèm với các bài kiểm tra đơn vị nếu có

Tính năng theo dõi và hủy theo dõi có hoạt động trên TikTok không?

Bạn có thể theo dõi hoặc hủy theo dõi ai đó trên TikTok bằng cách truy cập trang hồ sơ của họ . Nếu mở trang Theo dõi trên TikTok, bạn có thể hủy theo dõi nhiều tài khoản cùng lúc. Chặn ai đó mà bạn theo dõi cũng sẽ tự động hủy theo dõi họ.

Theo dõi hủy theo dõi có phải là một chiến lược tốt không?

Phương pháp theo dõi-bỏ theo dõi chỉ là một lối tắt. Nó mang lại cho bạn sự hài lòng nhanh chóng nhưng không phục vụ tài khoản của bạn về lâu dài và đó không phải là cách tốt nhất để phát triển trên nền tảng .

Theo dõi hủy theo dõi hoạt động như thế nào trên twitter?

Chiến lược theo dõi-bỏ theo dõi . Theo dõi mọi người để họ chú ý đến bạn, một số người trong số họ sẽ theo dõi lại bạn . Vì Twitter giới hạn số người bạn được phép theo dõi nên bạn cần hủy theo dõi một số người trước khi theo dõi thêm.

Chủ Đề