tejariapp-new-logotejariapp-new-logotejariapp-new-logotejariapp-new-logo
  • صفحه اصلی
  • پروژه ها
    • پروژه طراحی سایت
    • پروژه های اندروید
    • پروژه های تحت ویندوز
    • UI & UX
    • ربات تلگرام
  • سفارش پروژه
    • انجام پروژه اندروید (Android)
    • طراحی و ساخت اپلیکیشن موبایل
    • انجام پروژه طراحی سایت با php
    • انجام پروژه طراحی سایت با Asp.net
    • انجام پروژه سی شارپ
    • فرم سفارش پروژه
  • مدرسه ی تجاری اپ
    • طراحی سایت
    • اندروید
    • سی شارپ
    • آموزش پایگاه داده
    • برنامه های کاربردی
  • لینک های مفید
    • پرداخت آنلاین
    • درباره تجاری اپ
    • تماس با ما
استخدام برنامه نویس متلب
سفارش پروژه
✕
            هیچ نتیجه ای یافت نشدمشاهده همه نتایج

            پیاده سازی سیستم فالو (Follow) و آنفالو (Unfollow) در لاراول

            • صفحه نخست
            • مدرسه ی تجاری اپ آموزش طراحی سایت
            • پیاده سازی سیستم فالو (Follow) و آنفالو (Unfollow) در لاراول
            حذف تمام فاصله ها از رشته با جی کوئری JQuery
            حذف تمام فاصله ها از رشته با جی کوئری JQuery
            24 خرداد 1398
            مقدمه ای بر زبان کاتلین
            کاتلین – مقدمه – آموزش برنامه نویسی kotlin
            3 تیر 1398
            منتشر شده توسط مدیر سایت
            پیاده سازی سیستم فالو و آنفالو در لاراول

            پیاده سازی سیستم فالو و آنفالو در لاراول

            پیاده سازی سیستم فالو (Follow) و آنفالو (Unfollow) در لاراول ، در این پست از تجاری اپ قصد داریم پیاده سازی سیستم فالو کردن و آنفالو کردن در لاراول را در قالب یک مثال به شما آموزش دهیم (مانند فیس بوک و توییتر).اساسا یک کاربر می تواند کاربر دیگری را فالو یا آنفالو کند و شما می توانید کاربرانی که شما را دنبال می کنند وهمچنین تعداد کسانی را که دنبال می کنید یا شما را دنبال می کنند را ببینید.
            در این آموزش ما نحوه ی ساخت سیستم فالو و آنفالو کردن در لاراول 5.8 را بصورت گام به گام توضیح خواهیم داد.ما در این آموزش برای پیاده سازی سیستم فالو و آنفالو از پکیج “overture/laravel-follow” استفاده می کنیم.همچنین برای این آموزش ما با استفاده از auth لاراول ، جدول کاربران و احراز هویت کاربر را ایجاد می کنیم.سپس یک کاربر می تواند وارد سیستم شود و تعداد کسانی که او را دنبال می کنند یا او آنها را دنبال می کند را مشاهده کند.

            پیاده سازی سیستم Follow و Unfollow در لاراول

            برای یادگیری این آموزش کافیست مراحل زیر را دنبال کنید:

            1. نصب لاراول و پیکربندی اولیه
            2. نصب پکیج laravel-follow
            3. ایجاد احرازهویت (Authentication)
            4. ایجاد کاربران ساختگی
            5. ویرایش و بروزرسانی مدل User
            6. افزودن Route ها
            7. ایجاد متدهای مورد نیاز در کنترلر HomeController
            8. ایجاد فایل های Blade و فایل جاوااسکریپت
            9. تصاویر خروجی برنامه

            نصب لاراول و پیکربندی اولیه

            برای هر پروژه لاراول ما نیاز داریم که لاراول را نصب کنیم. به همین دلیل ما یک مقاله در رابطه با چگونگی نصب و پیکربندی اولیه لاراول آماده کرده ایم که می توانید از اینجا ان را مشاهده نمایید : آموزش نصب لاراول به همراه تنظیمات اولیه

            نصب پکیج laravel-follow برای پیاده سازی سیستم Follow و Unfollow در لاراول

            بعد از نصب و پیکربندی لاراول ما برای سیستم فالو و آنفالو باید پکیج laravel-follow را نصب کنیم.بنابراین ترمینال خود را باز کنید و دستور زیر را اجرا کنید:

            composer require overtrue/laravel-follow
            

            اکنون فایل config/app.php را باز کنید و service provider را به آن اضافه کنید:

            config/app.php

            'providers' => [
            
            	....
            
            	Overtrue\LaravelFollow\FollowServiceProvider::class,
            
            ],
            

            انتشار فایل migrations

            php artisan vendor:publish --provider='Overtrue\LaravelFollow\FollowServiceProvider' --tag="migrations"
            

            به صورت اختیاری اگر می خواهید تنظیمات پیش فرض را تغییر دهید، می توانید فایل پیکربندی را منتشر کنید:

            php artisan vendor:publish --provider="Overtrue\LaravelFollow\FollowServiceProvider" --tag="config"
            

            بعد از انتشار فایل migrations برای ایجاد جداول دستور زیر را اجرا کنید:

            php artisan migrate
            

            همچنین بخوانید: نحوه ایجاد و دانلود PDF در لاراول 5.8

            ایجاد احرازهویت (Authentication)

            در این مرحله ما نیاز داریم احرازهویت (Authentication) را ایجاد کنیم ، برای این کار لاراول یک دستور artisan برای ما فراهم کرده است به این ترتیب ما برای ورود و ثبت نام نیازی به ایجاد route و کنترلر نداریم.دستور زیر را اجرا کنید:

            php artisan make:auth
            

            ایجاد کاربران ساختگی

            در این مرحله تعدادی کاربر ساختگی برای تست ایجاد می کنیم ، برای این کار از factory استفاده می کنیم. دستور زیر را اجرا کنید:

            php artisan tinker
            
              factory(App\User::class, 100)->create();
            

            ویرایش و بروزرسانی مدل User

            در اینجا ما باید مدل User را ویرایش کنیم.ما باید فاساد CanFollow و CanBeFollowed را در این مدل use کنیم.مانند کد زیر:

            App/User.php

            <?php
            
            namespace App;
            
            use Illuminate\Notifications\Notifiable;
            use Illuminate\Contracts\Auth\MustVerifyEmail;
            use Illuminate\Foundation\Auth\User as Authenticatable;
            
            use Overtrue\LaravelFollow\Traits\CanFollow;
            use Overtrue\LaravelFollow\Traits\CanBeFollowed;
            
            class User extends Authenticatable
            {
                use Notifiable, CanFollow, CanBeFollowed;
            
                /**
                 * The attributes that are mass assignable.
                 *
                 * @var array
                 */
                protected $fillable = [
                    'name', 'email', 'password',
                ];
            
                /**
                 * The attributes that should be hidden for arrays.
                 *
                 * @var array
                 */
                protected $hidden = [
                    'password', 'remember_token',
                ];
            
                /**
                 * The attributes that should be cast to native types.
                 *
                 * @var array
                 */
                protected $casts = [
                    'email_verified_at' => 'datetime',
                ];
            }
            

            افزودن Route ها

            در این مرحله Route هایی برای سیستم فالو و آنفالو ابجاد می کنیم.پس فایل web.php را باز کنید و Route های زیر را به ان اضافه کنید:

            routes/web.php

            <?php
            
            Route::get('/', function () {
                return view('welcome');
            });
            
            Auth::routes();
            
            Route::get('/home', 'HomeController@index')->name('home');
            
            Route::get('users', 'HomeController@users')->name('users');
            Route::get('user/{id}', 'HomeController@user')->name('user.view');
            Route::post('ajaxRequest', 'HomeController@ajaxRequest')->name('ajaxRequest');
            

            ایجاد متدهای مورد نیاز در کنترلر HomeController

            در این مرحله ما سه متد users() و user() و ajaxRequest() را به کنترلر HomeController اضافه می کنیم.بنابراین کنترلر HomeController را مانند زیر ویرایش کنید:

            app/Http/HomeController.php

            <?php
            
            namespace App\Http\Controllers;
            
            use App\User;
            use Illuminate\Http\Request;
            
            class HomeController extends Controller
            {
                /**
                 * Create a new controller instance.
                 *
                 * @return void
                 */
                public function __construct()
                {
                    $this->middleware('auth');
                }
            
                /**
                 * Show the application dashboard.
                 *
                 * @return \Illuminate\Contracts\Support\Renderable
                 */
                public function index()
                {
                    return view('home');
                }
            
                /**
                 * Show the application of tejariapp.com.
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function users()
                {
                    $users = User::get()->sortByDesc('id');
                    return view('users', compact('users'));
                }
            
                /**
                 * Show the application of tejariapp.com.
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function user($id)
                {
                    $user = User::find($id);
                    return view('usersView', compact('user'));
                }
            
                /**
                 * Show the application of tejariapp.com.
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function ajaxRequest(Request $request){
            
            
                    $user = User::find($request->user_id);
                    $response = auth()->user()->toggleFollow($user);
            
            
                    return response()->json(['success'=>$response]);
                }
            }
            

            ایجاد فایل های Blade و فایل جاوااسکریپت

            در این مرحله ما باید فایل های با نام های userList.blade.php ، users.blade.php و usersView.blade.php در مسیر resources/views ایجاد کنیم و یک فایل با نام custom.js در مسیر publis/js ایجاد می کنیم.

            resources/views/users.blade.php

            @extends('layouts.app')
            
            @section('content')
                <script src="{{ asset('js/custom.js') }}" defer></script>
            
            
                <div class="container">
                    <div class="row justify-content-center">
                        <div class="col-md-12">
                            <div class="card">
                                <div class="card-header">لیست کاربران - وب سایت تجاری اپ</div>
            
            
                                <div class="card-body">
                                    <div class="row pl-5">
                                        @include('userList', ['users'=>$users])
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            @endsection
            

            resources/views/usersView.blade.php

            @extends('layouts.app')
            
            @section('content')
                <script src="{{ asset('js/custom.js') }}" defer></script>
                
                <div class="container">
                    <div class="row justify-content-center">
                        <div class="col-md-12">
                            <div class="card">
                                <div class="card-header">
                                    {{ $user->name }}
                                    <br/>
                                    <small>
                                        <strong>وب سایت:</strong> tejariapp.com,
                                        <strong>ایمیل: </strong>{{ $user->email }}
                                    </small>
                                </div>
                                
                                <div class="card-body">
                                    <nav>
                                        <div class="nav nav-tabs" id="nav-tab" role="tablist">
                                            <a class="nav-item nav-link active" id="nav-home-tab" data-toggle="tab" href="#followers" role="tab" aria-controls="nav-home" aria-selected="true">Followers <span class="badge badge-primary">{{ $user->followers()->get()->count() }}</span></a>
                                            <a class="nav-item nav-link" id="nav-profile-tab" data-toggle="tab" href="#following" role="tab" aria-controls="nav-profile" aria-selected="false">Following <span class="badge badge-primary">{{ $user->followings()->get()->count() }}</span></a>
                                        </div>
                                    </nav>
                                    <div class="tab-content" id="nav-tabContent">
                                        <div class="tab-pane fade show active" id="followers" role="tabpanel" aria-labelledby="nav-home-tab">
                                            <div class="row pl-5">
                                                @include('userList', ['users'=>$user->followers()->get()])
                                            </div>
                                        </div>
                                        <div class="tab-pane fade" id="following" role="tabpanel" aria-labelledby="nav-profile-tab">
                                            <div class="row pl-5">
                                                @include('userList', ['users'=>$user->followings()->get()])
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            @endsection
            

            resources/views/userList.blade.php

            @if($users->count())
                @foreach($users as $user)
                    <div class="col-2 profile-box border p-1 rounded text-center bg-light mr-4 mt-3">
                        <img src="https://dummyimage.com/165x166/333333/ffffff&text=tejariapp.com" class="w-100 mb-1">
                        <h5 class="m-0"><a href="{{ route('user.view', $user->id) }}"><strong>{{ $user->name }}</strong></a></h5>
                        <p class="mb-2">
                            <small>Following: <span class="badge badge-primary">{{ $user->followings()->get()->count() }}</span></small>
                            <small>Followers: <span class="badge badge-primary tl-follower">{{ $user->followers()->get()->count() }}</span></small>
                        </p>
                        <button class="btn btn-info btn-sm action-follow" data-id="{{ $user->id }}"><strong>
                                @if(auth()->user()->isFollowing($user))
                                    UnFollow
                                @else
                                    Follow
                                @endif
                            </strong></button>
                    </div>
                @endforeach
            @endif
            

            publis/js/custom.js

            همچنین بخوانید: عملیات CRUD با استفاده از Datatable و Ajax در لاراول 5.8

            $(document).ready(function() {
            
                $.ajaxSetup({
                    headers: {
                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                    }
                });
            
            
                $('.action-follow').click(function(){
                    var user_id = $(this).data('id');
                    var cObj = $(this);
                    var c = $(this).parent("div").find(".tl-follower").text();
            
            
                    $.ajax({
                        type:'POST',
                        url:'/ajaxRequest',
                        data:{user_id:user_id},
                        success:function(data){
                            console.log(data.success);
                            if(jQuery.isEmptyObject(data.success.attached)){
                                cObj.find("strong").text("Follow");
                                cObj.parent("div").find(".tl-follower").text(parseInt(c)-1);
                            }else{
                                cObj.find("strong").text("UnFollow");
                                cObj.parent("div").find(".tl-follower").text(parseInt(c)+1);
                            }
                        }
                    });
                });
            
            });
            

            شما می توانید برنامه خود را با دستور زیر اجرا کنید و تست کنید

            تصاویر خروجی برنامه فالو و آنفالو در لاراول

            در زیر تصاویر خروجی برنامه را مشاهده می کنید:

            • پیاده سازی سیستم فالو و آنفالو در لاراول
              پیاده سازی سیستم فالو و آنفالو در لاراول
            • پیاده سازی سیستم فالو و آنفالو در لاراول
              پیاده سازی سیستم فالو و آنفالو در لاراول
            • پیاده سازی سیستم فالو و آنفالو در لاراول
              پیاده سازی سیستم فالو و آنفالو در لاراول

            امیدوارم این اموزش برای شما مفید بوده باشد.

            اشتراک گذاری

            پست های مرتبط

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            دستورات جریان کنترل (Control flow statements) یا دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت Dart

            30 بهمن 1400

            دستورات شرطی و حلقه ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت یا Dart

            30 بهمن 1400

            آموزش عملگرها یا Operator ها در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب
            توابع در زبان برنامه نویسی دارت (Dart)

            توابع در زبان برنامه نویسی دارت (Dart)

            27 بهمن 1400

            توابع در زبان برنامه نویسی دارت (Dart)


            ادامه مطلب

            دیدگاهتان را بنویسید لغو پاسخ

            نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

            ساخت اپلیکیشن های موبایل

            • ساخت اپلیکیشن فروشگاهی
            • ساخت اپلیکشن ابزاری و خدماتی
            • ساخت اپلیکیشن آموزشی
            • و هزاران موضوع دیگر

             
            کلیک کنید

            آخرین دیدگاه ها

            • 9 اسفند 1401

              مهری اصغری نظر در پیاده سازی اولین پروژه با فلاتر Flutter

            • 26 آبان 1401

              سجاد نظر در پروژه مدیریت سیستم مدرسه با سی شارپ و sql server

            • 7 خرداد 1401

              داودی نظر در آموزش استفاده از ckeditor همراه با آپلود عکس در لاراول 6

            تجاری اپ در شبکه های اجتماعی

            لوگوی تایید پرداخت آنلاین

            2015-2022 © تمامي حقوق مادي و معنوي اين وب سايت نزد تجاری اپ محفوظ بوده و هر گونه کپي برداري از مطالب پيگرد قانوني به همراه دارد! | طراح سایت : ProgRun
            سفارش پروژه
                      هیچ نتیجه ای یافت نشدمشاهده همه نتایج