CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

11 April, 2022

Add Likes, Bookmarks, Favorites, and Other Marks With Laravel Markable

 Programing Coderfunda     April 11, 2022     Laravel, Packages     No comments   

 Laravel Markable is a package to Integrate likes, bookmarks, favorites, reactions, and custom-made marks into your application.

The basic usage is adding a Markable trait and types of "marks" you want to allow for a given model. For example, if you have a Course model and you want to let users like the course:

1namespace App\Models;
2 
3use Illuminate\Database\Eloquent\Model;
4use Maize\Markable\Markable;
5use Maize\Markable\Models\Like;
6 
7class Course extends Model
8{
9 use Markable;
10 
11 protected $fillable = [
12 'title',
13 'description',
14 ];
15 
16 protected static $marks = [
17 Like::class,
18 ];
19}

With that model in place, here's what it looks like to manage marks using this package:

1use App\Models\Course;
2use Maize\Markable\Models\Like;
3 
4// marks the course liked for the given user
5Like::add($course, $user);
6 
7// unmarks the course liked for the given user
8Like::remove($course, $user);
9 
10// toggles the course like for the given user
11Like::toggle($course, $user);
12 
13// returns whether the given user likes a course or not
14Like::has($course, $user);
15 
16// returns how many users like a course
17Like::count($course);

The Like model is built-in to the package, but you can also build custom mark models, such as Pledge that allows a user to pledge a donation to a cause.

The package includes various mark types out-of-the-box, including:

  • Bookmark
  • Favorite
  • Like
  • Reaction

On the other side of adding a Like for a user, you might what to list all likes for a given user so they can see what courses they've liked:

1// All course models with a like from the given user
2Course::whereHasLike(
3 auth()->user()
4)->get();
5 
6// All post models with a 'heart' reaction from the given user
7Post::whereHasReaction(
8 auth()->user(),
9 'heart'
10)->get();

You can learn more about this package, get full installation instructions, and view the source code on GitHub.Laravel Markable is a package to Integrate likes, bookmarks, favorites, reactions, and custom-made marks into your application.

The basic usage is adding a Markable trait and types of "marks" you want to allow for a given model. For example, if you have a Course model and you want to let users like the course:

1namespace App\Models;
2 
3use Illuminate\Database\Eloquent\Model;
4use Maize\Markable\Markable;
5use Maize\Markable\Models\Like;
6 
7class Course extends Model
8{
9 use Markable;
10 
11 protected $fillable = [
12 'title',
13 'description',
14 ];
15 
16 protected static $marks = [
17 Like::class,
18 ];
19}

With that model in place, here's what it looks like to manage marks using this package:

1use App\Models\Course;
2use Maize\Markable\Models\Like;
3 
4// marks the course liked for the given user
5Like::add($course, $user);
6 
7// unmarks the course liked for the given user
8Like::remove($course, $user);
9 
10// toggles the course like for the given user
11Like::toggle($course, $user);
12 
13// returns whether the given user likes a course or not
14Like::has($course, $user);
15 
16// returns how many users like a course
17Like::count($course);

The Like model is built-in to the package, but you can also build custom mark models, such as Pledge that allows a user to pledge a donation to a cause.

The package includes various mark types out-of-the-box, including:

  • Bookmark
  • Favorite
  • Like
  • Reaction

On the other side of adding a Like for a user, you might what to list all likes for a given user so they can see what courses they've liked:

1// All course models with a like from the given user
2Course::whereHasLike(
3 auth()->user()
4)->get();
5 
6// All post models with a 'heart' reaction from the given user
7Post::whereHasReaction(
8 auth()->user(),
9 'heart'
10)->get();

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • How to monitor process status during process lifetime
    I need to track the process status ps axf during executable lifetime. Let's say I have executable main.exec and want to store into a fi...
  • Show page numbers as navigation in Laravel pagination
      Answer Sorted by:                                                Highest score (default)                                                  ...
  • How to Run a Python File on a Specific Virtual Desktop Only?
    I want to run a Python script on a specific virtual desktop without affecting other desktops. Currently, when I execute my Python file us...
  • Use Flags For Countries & Languages in Laravel Blade Views
      Blade Flags   is a package to efficiently use   TwEmoji Countries & Languages Flags   in your Laravel Blade views. You can use it easi...
  • Different output in VisualStudio and Codeblocks
    I need a linear interpolation in 2D array. The output in Codeblocks is correct, but in VisualStudio is not. I got 2 main functions. ...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (69)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • July (4)
  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda