Jarret.Byrne

Politics, Sociology, Firefighting, Technology, and Original Fiction

Tag: laravel

Events, Listeners, Queues, and Jobs in Laravel Explained Simply

Someone on StackOverflow recently asked for a very basic explanation of what the differences are between Events, Listeners, Queues, and Jobs in Laravel. Specifically, the poster requested that the answer be explained as if he or she was only 5. As Events, Listeners, Queues, and Jobs can be confusing, I thought it might be worth posting my response, in the hopes that it might be useful to anyone who might be wondering the same thing.

Read More

New EventServiceProvider Location For Lumen 5.2

This is as much a note to myself as anything, but if you have recently tried to update a project that was using Lumen 5.1 to use Lumen 5.2, you might get an error that Illuminate\Foundation\Support\Providers\EventServiceProvider can no longer be found.

The problem is explicit in the error, thankfully: the class can no longer be found. The question then is, where has that file gone?

Read More

Unique Pivot Rows With Laravel’s Eloquent

This post is something I find myself needing a lot, so I thought I would put it here for my own memory and anyone else who might need it. To give credit where credit is due, the methodology shown below is taken from the answers here: https://laracasts.com/discuss/channels/requests/many-to-many-relation-with-unique-records-in-pivot?page=1


Often times, when I set up a many-to-many relationship in Laravel, I need the relationship between two nodes to be distinct. For example, when a user is given a privilege for a forum, and they can have one-and-only-one privilege type for that particular forum, even if they are related to many other forums, then we will not want duplicate pivot rows. In this case, it would get awful tedious to ensure that every time there is an update for the user’s privilege that we check to see if a relationship already exists between the user and forum and update it instead of creating it. That can be thrown into a model method easily enough for DRY’er code, but it is still mildly annoying, and if you’re working with a team there’s no ultimate failsafe error should someone circumvent that procedure, by accident or otherwise.




So the goal of this post is:

  1. to ensure that in a many-to-many relationship there can be only one row relating two nodes (many users are tied to many forums, but a particular user and a particular forum are related through no more than one row);
  2. to use built-in Eloquent methodology to perform the if-new-create-otherwise-update logic for us; and
  3. to ensure that the systems used will throw an error should an attempt be made to create a duplicate relationship.

Read More

Powered by WordPress & Theme by Anders Norén