سلام دوستان
اگر از پکیچی استفاده کردین برا لایک و دیس لایک ممنون میشم معرفی کنید.
من میخوام هم تعداد لایک رو داشته باشم هم دیس لایک
این پکیج هست مثل اینکه
https://github.com/cybercog/laravel-love
من نصب کردم اما متوجه نشدم چطوره کار کردش
ممنون میشم راهنمایی کنید
سلام @endworld
سپاس
این فقط لایک هست
درسته میشه لایک رو پس بگیری
اما من میخوام جدا باشن
یعنی تعداد لایک و دیس لایک ها رو بشه نمایش داد
مثل رادیو جوان
من یه پکیج در این زمینه نوشتم اما لایک و دیسلایکش روی همه
https://packagist.org/packages/alibayat/likeable
اون مدل هم که شما مد نظرتونه قبلا روی گیتهاب دیدمو بگردید پیدا میکنید
@ali.bayat
سلام.اقای بیات من پکیچ شما نصب کردم و بابت ساخت این پکیچ از شما ممنون ام.
می شه کوئری گرفتن پست های با بیشترین لایک و همچنین کاربرانی که پست هاشون بیشترین لایک داشته برای من بنویسید
@rezajamalzadeh900
درود، لطف دارید.
با پراپرتی likeCount میتونید تعداد کل لایکهای یه آیتم رو حساب کنید.. در حین دریافت پستها میتونید از متد map استفاده کنید و به ترتیب با بیشترین لایک رو برگردونید
@ali.bayat
سلام مجدد اقای بیات . ببخشید می خواستم این سیستم لایک به صورت ajax پیاده کنم می شه کمک کنید
مسلما بیشتر این پروسه سمت فرانتاند باید انجام بشه (مثل دریافت و آپدیت لیست لایکها، فرستادن درخواست Ajax )
اما سمت سرور کارهایی که باید انجام بدید به شکل زیره:
به نظرم شاید بشه با redis یا یک کتاب خانه دیگه درستش کرد با زمان اندک و نیاز به ایجاد پیج دیگه ای نباشه
@ali.bayat
با سلام.اقای بیات من قسمت بک اند درست کردم اما مشکلم قسمت فرانت هست چون jquery به گفته یکی از دوستان یاد نگرفتم.ممنون می شم این قسمت کمک کنید؟
متاسفانه من نمونه Ajax این کار رو با jquery انجام ندادم اما با VueJs چرا و مراحلش هم ساده است
باید یه Component بسازید که حاوی فرم، آیکون لایک و نمایش تعداد عددش باشه...
هنگامی که آیکون کلیک شد، با استفاده از axios یا هر کتابخونه دیگه درخواست ajax فرستاده میشه و آیکون عوض میشه و تعداد لایک هم آپدیت میشه
و هنگام دیس لایک هم عکس این قضیه اتفاق میفته
@ali.bayat
سلام مجدد. من سیستم لایک با vue پیاده سازی کردم فقط مشکل گرفتن تعداد لایک ها در vue هست .ممنون می شم کمک کنید
@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);
})
@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>
ابتدا داخل تگ 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 متد رو صدا بزن
@ali.bayat
اقای بیات ببخشید زیاد مزاحم می شم. همون کدی که بالا گفتید را زدم و تعداد لایک ها نمایش داده شد اما مشکل اینجاس که اگه مثلا تعداد لایک ها 0 باشه بعد من دکمه لایک بزنم ،لایک داخل دیتابس ثبت می شه اما باید صفحه رفریش بشه تا تعداد لایک جدید نمایش داده بشه؟
@rezajamalzadeh900
خواهش میکنم.
برای آپدیت شدن در لحظه باید داخل متدهای favorite و unFavorite .... و داخل قسمت then. تعداد لایک رو آپدیت کنید:
this.likesCount += 1;
و
this.likesCount -= 1;
@ali.bayat
@ali.bayat
@hesammousavi
سلام مجدد . ببخشید می خواست بدونم با توجه به پکیچ بالا اگه بخوام وقتی پست حذف شد تعداد لایک هاش داخل جدول likeable هم حذف بشه باید چی کار کنم؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟