Skip to content

Instantly share code, notes, and snippets.

$originalStartDate = app('Carbon\Carbon')->parse('1/30/2017');
$newStartDate = app('Carbon\Carbon')->parse('2/27/2017');
$difference = $originalStartDate->diffInDays($newStartDate);
$dates = [
'2/20/2017',
'2/24/2017',
'3/6/2017',

Laravel Model Scope Array

Use array syntax to define a list of scopes to apply to a model

Assuming you have scopePopular & scopeRecent as query scopes

Book::scopes(['popular', 'recent'])->get();

Add this to your model

Laravel Query Dump: count, time, and objects

session('db') using code below, will produce query count, time spent, and the query objects themselves

\DB::listen(function ($query) {
    if(app()->isLocal())
    {
        session()->push('db.queries', $query);
 $queries = collect(session('db.queries'));
@dillinghamio
dillinghamio / @role.md
Last active April 20, 2021 00:39
@ROLE Blade Directive For Laravel Spark

@role Blade Directive For Laravel Spark

Assumes you're using teams

Add this to the boot() method of your AppServiceProvider

\Blade::directive('role', function($roles) {

 $user = auth()->user();

UsedByTeams Model Trait For Laravel Spark

Automatically limit your models to the current team

So you're using spark, and you have teams enabled. You start creating models and want to have them be team specific. Instead of writing, Model::where('team_id', auth()->user()->currentTeam->id)->get(); use this trait to add that behind the scenes so that every time you call on your model, it's assumed that you mean for the current team.

This assumes that the model has a team_id, while it adds a scope of where team_id = currentTeam->id.

Note: Implicit Route Model Binding in 5.2, auth session doesn't exist at the point of this trait causing issue. fixed in 5.3

@dillinghamio
dillinghamio / SparkRoleMiddleware.md
Last active April 8, 2022 03:50
Team Role Middleware For Laravel Spark

Team Role Middleware For Laravel Spark

Makes it simple to use Spark's role feature on routes

Route::group(['middleware'=>'role:owner'], function(){
    // owners only
});

Route::group(['middleware'=>'role:member'], function(){
@dillinghamio
dillinghamio / currentTeamMembersByRole.md
Last active August 13, 2019 13:55
currentTeamMembersByRole

User's Fellow Members in Laravel Spark

add to your user model

public function teamMembers($role='member')
{
    return $this->currentTeam
 ->users()
@dillinghamio
dillinghamio / Spark User Team Seeding.md
Last active November 23, 2020 13:07
Spark User Team Seeding

Seeding Users & Teams In Laravel Spark

Makes 5 users each with 1 team that has 5 members

Add a team factory to database/factories/ModelFactory.php

$factory->define(App\Team::class, function (Faker\Generator $faker) {
    return [
 'name' => $faker->sentence,
@dillinghamio
dillinghamio / @plan.md
Last active December 26, 2020 13:24
Laravel Spark @plan Blade Directive

@plan Blade Directive For Laravel Spark

Works with user & team billing

Add this to the boot() method of your AppServiceProvider

\Blade::directive('plan', function($plans) {

 $model = auth()->user();
@dillinghamio
dillinghamio / Notification Helper For Laravel Spark.md
Last active January 18, 2019 08:14
Notification Helper For Laravel Spark

notification Helper For Laravel Spark

The method assumes the current authenticated user, so you only need to pass the message

function notification($message)
{
	$notification = app('Laravel\Spark\Contracts\Repositories\NotificationRepository');
	
	return $notification->create(auth()->user(), $message);