madadi
5 سال پیش توسط madadi مطرح شد
17 پاسخ

لایک و دیس لایک در لاراول

سلام دوستان
اگر از پکیچی استفاده کردین برا لایک و دیس لایک ممنون میشم معرفی کنید.
من میخوام هم تعداد لایک رو داشته باشم هم دیس لایک
این پکیج هست مثل اینکه
https://github.com/cybercog/laravel-love
من نصب کردم اما متوجه نشدم چطوره کار کردش
ممنون میشم راهنمایی کنید


ثبت پرسش جدید
رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
madadi
@madadi 5 سال پیش مطرح شد
0

سلام @endworld

سپاس
این فقط لایک هست
درسته میشه لایک رو پس بگیری
اما من میخوام جدا باشن
یعنی تعداد لایک و دیس لایک ها رو بشه نمایش داد
مثل رادیو جوان


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
4

من یه پکیج در این زمینه نوشتم اما لایک و دیسلایکش روی همه
https://packagist.org/packages/alibayat/likeable

اون مدل هم که شما مد نظرتونه قبلا روی گیت‌هاب دیدمو بگردید پیدا می‌کنید


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش مطرح شد
1

@ali.bayat
سلام.اقای بیات من پکیچ شما نصب کردم و بابت ساخت این پکیچ از شما ممنون ام.
می شه کوئری گرفتن پست های با بیشترین لایک و همچنین کاربرانی که پست هاشون بیشترین لایک داشته برای من بنویسید


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@rezajamalzadeh900
درود، لطف دارید.

با پراپرتی likeCount می‌تونید تعداد کل لایک‌های یه آیتم رو حساب کنید.. در حین دریافت پست‌ها میتونید از متد map استفاده کنید و به ترتیب با بیشترین لایک رو برگردونید


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش مطرح شد
0

@ali.bayat
سلام مجدد اقای بیات . ببخشید می خواستم این سیستم لایک به صورت ajax پیاده کنم می شه کمک کنید


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@rezajamalzadeh900

مسلما بیشتر این پروسه سمت فرانت‌اند باید انجام بشه (مثل دریافت و آپدیت لیست لایک‌‌ها، فرستادن درخواست Ajax )

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

  • تعریف Route از نوع POST برای لایک کردن و فرستادن درخواست Ajax
  • تعریف Route از نوع GET برای دریافت تعداد لایک‌‌ها و آپدیت اطلاعات
  • ساخت یک کنترلر که Route ها به متدهای اون منتقل میشند..
    و استفاده از پکیج لایک داخل این کنترلر می‌تونه صورت بگیره

رضا زراعت
تخصص : طراح وب
@rezacr588 5 سال پیش مطرح شد
0

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


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش مطرح شد
1

@ali.bayat
با سلام.اقای بیات من قسمت بک اند درست کردم اما مشکلم قسمت فرانت هست چون jquery به گفته یکی از دوستان یاد نگرفتم.ممنون می شم این قسمت کمک کنید؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@rezajamalzadeh900

متاسفانه من نمونه Ajax این کار رو با jquery انجام ندادم اما با VueJs چرا و مراحلش هم ساده است

باید یه Component بسازید که حاوی فرم، آیکون لایک و نمایش تعداد عددش باشه...
هنگامی که آیکون کلیک شد، با استفاده از axios یا هر کتابخونه دیگه درخواست ajax فرستاده میشه و آیکون عوض میشه و تعداد لایک هم آپدیت میشه
و هنگام دیس لایک هم عکس این قضیه اتفاق میفته


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش مطرح شد
0

@ali.bayat
سلام مجدد. من سیستم لایک با vue پیاده سازی کردم فقط مشکل گرفتن تعداد لایک ها در vue هست .ممنون می شم کمک کنید


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@rezajamalzadeh900
یه اِندپوینت سمت بک‌اند باید بوجود بیارید مثلا

Route::get('api/likesCount/{Post}', 'LikesController@countLikes');

post یا هر چیز دیگه رو که می‌خواهید تعداد لایکش رو چک کنید در درخواست Ajax می‌فرستید و متد countLikes در LikesController یا هر کنترلر دیگه تعداد لایک شده رو به JSon بر می‌گردونه و شما در Vue ازش استفاده می‌کنید..
در‌خواست Ajax ارسالی هم شبیه زیر میشه:

      axios.get('http://localhost/api/likesCount/1')
      .then(response => {
         this.likes = response.data.likes;
       })
       .catch(error => {
         // console.log(error);
      })

Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش آپدیت شد
0

@ali.bayat
@ali.bayat
این کدی که من برای vue.js استفاده کردم.چه کدی باید بهش اضافه کنم

<template>  
<span>  
<a href="#" v-if="isFavorited" [@click.prevent](https://roocket.ir/@click.prevent)="unFavorite(link)">  
<i class="fa fa-heart"></i>  
</a>  
<a href="#" v-else [@click.prevent](https://roocket.ir/@click.prevent)="favorite(link)">  
<i class="fa fa-heart-o"></i>  
</a>  
</span>  
</template>

<script>  
export default {  
props: \['link', 'favorited'\],
data: function () {
    return {
        isFavorited: '',
    }
},

mounted() {
    this.isFavorited = this.isFavorite ? true : false;

},
computed: {
    isFavorite() {
        return this.favorited;
    },
},

methods: {
    favorite(link) {
        axios.post('/favorite/' + link)
            .then(response => this.isFavorited = true)
            .catch(response => console.log(response.data));
    },

    unFavorite(link) {
        axios.post('/unfavorite/' + link)
            .then(response => this.isFavorited = false)
            .catch(response => console.log(response.data));
    },
}

}


</script>  

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

ابتدا داخل تگ template یه جا برای نمایش لایک‌ها در نظر بگیر:

<template>  
<div>
<span>  
<a href="#" v-if="isFavorited" [@click.prevent](https://roocket.ir/@click.prevent)="unFavorite(link)">  
<i class="fa fa-heart"></i>  
</a>  
<a href="#" v-else [@click.prevent](https://roocket.ir/@click.prevent)="favorite(link)">  
<i class="fa fa-heart-o"></i>  
</a>  
</span>  

<span v-text="likesCount"> </span>

</div>
</template>

گزینه رو به data اضافه کن:

data: function () {
    return {
        isFavorited: '',
    likesCount: '',
    }
}

یه متد براش داخل methods بساز شبیه به زیر:


count(link) {
      axios.get('http://localhost/api/likesCount/' + link)
      .then(response => {
         this.likesCount = response.data;
       })
       .catch(error => {
         // console.log(error);
      })
}

و در نهایت توی Mounted متد رو صدا بزن


Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش مطرح شد
0

@ali.bayat
اقای بیات ببخشید زیاد مزاحم می شم. همون کدی که بالا گفتید را زدم و تعداد لایک ها نمایش داده شد اما مشکل اینجاس که اگه مثلا تعداد لایک ها 0 باشه بعد من دکمه لایک بزنم ،لایک داخل دیتابس ثبت می شه اما باید صفحه رفریش بشه تا تعداد لایک جدید نمایش داده بشه؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@rezajamalzadeh900
خواهش می‌کنم.
برای آپدیت شدن در لحظه باید داخل متدهای favorite و unFavorite .... و داخل قسمت then. تعداد لایک رو آپدیت کنید:

this.likesCount += 1;
و 
this.likesCount -= 1;

Reza Jm
تخصص : برنامه نویس php
@rezajamalzadeh900 5 سال پیش آپدیت شد
0

@ali.bayat
@ali.bayat
@hesammousavi
سلام مجدد . ببخشید می خواست بدونم با توجه به پکیچ بالا اگه بخوام وقتی پست حذف شد تعداد لایک هاش داخل جدول likeable هم حذف بشه باید چی کار کنم؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام