JeffreyWay

JeffreyWay

Owner at Laracasts

Member Since 6 Years Ago

Chattanooga, TN

Experience Points
476,300
Total
Experience

0 experience to go until the next level!

In case you were wondering, you earn Laracasts experience when you:

  • Complete a lesson — 100pts
  • Create a forum thread — 50pts
  • Reply to a thread — 10pts
  • Leave a reply that is liked — 50pts
  • Receive a "Best Reply" award — 500pts
Lessons Completed
315
Lessons
Completed
Best Reply Awards
357
Best Reply
Awards
  • start your engines Created with Sketch.

    Start Your Engines

    Earned once you have completed your first Laracasts lesson.

  • first-thousand Created with Sketch.

    First Thousand

    Earned once you have earned your first 1000 experience points.

  • 1-year Created with Sketch.

    One Year Member

    Earned when you have been with Laracasts for 1 year.

  • 2-years Created with Sketch.

    Two Year Member

    Earned when you have been with Laracasts for 2 years.

  • 3-years Created with Sketch.

    Three Year Member

    Earned when you have been with Laracasts for 3 years.

  • 4-years Created with Sketch.

    Four Year Member

    Earned when you have been with Laracasts for 4 years.

  • 5-years Created with Sketch.

    Five Year Member

    Earned when you have been with Laracasts for 5 years.

  • school-in-session Created with Sketch.

    School In Session

    Earned when at least one Laracasts series has been fully completed.

  • welcome-newcomer Created with Sketch.

    Welcome To The Community

    Earned after your first post on the Laracasts forum.

  • full-time-student Created with Sketch.

    Full Time Learner

    Earned once 100 Laracasts lessons have been completed.

  • pay-it-forward Created with Sketch.

    Pay It Forward

    Earned once you receive your first "Best Reply" award on the Laracasts forum.

  • subscriber Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • evangelist Created with Sketch.

    Laracasts Evangelist

    Earned if you share a link to Laracasts on social media. Please email [email protected] with your username and post URL to be awarded this badge.

  • chatty-cathy Created with Sketch.

    Chatty Cathy

    Earned once you have achieved 500 forum replies.

  • lara-veteran Created with Sketch.

    Laracasts Veteran

    Earned once your experience points passes 100,000.

  • 10k-strong Created with Sketch.

    Ten Thousand Strong

    Earned once your experience points hits 10,000.

  • lara-master Created with Sketch.

    Laracasts Master

    Earned once 1000 Laracasts lessons have been completed.

  • laracasts-tutor Created with Sketch.

    Laracasts Tutor

    Earned once your "Best Reply" award count is 100 or more.

  • laracasts-sensei Created with Sketch.

    Laracasts Sensei

    Earned once your experience points passes 1 million.

  • top-50 Created with Sketch.

    Top 50

    Earned once your experience points ranks in the top 50 of all Laracasts users.

Level 50
476,300 XP
May
22
3 days ago
Activity icon

Commented on Simpler Code With UseCase Classes

Thank you! It takes a little bit longer to get there, but I think it's important to "arrive" at some of these solutions, rather than begin with them.

Activity icon

Commented on Techniques For Testing Against A Real API

Ah that's exactly what I needed. Didn't know about that one, thanks!

May
20
5 days ago
Activity icon

Commented on History Refactoring

Nothing. I do a lot of JavaScript work, so the callback approach is super common.

$this->stock->each->track(
    fn($stock) => $this->recordHistory($stock)
);
May
19
6 days ago
Activity icon

Replied to For New Website Which Version Of Laravel Is Better 6 Or 7?

Always go with the most recent version. 👍

May
15
1 week ago
Activity icon

Commented on Fake It Till You Make It

Yeah, not really a fan of them.

Activity icon

Commented on Techniques For Testing Against A Real API

It's an option. I talk about that a bit more in the next episode.

May
11
2 weeks ago
Activity icon

Commented on Different Strategies For Different Clients

My general rule is to avoid classes that end in er.

The Stock model is only exposing the behavior that it can be tracked. The actual logic lives in the Client implementation.

May
08
2 weeks ago
Activity icon

Commented on Different Strategies For Different Clients

Looks good. 👍

Activity icon

Commented on Fake It Till You Make It

Yikes! Sorry about that. All fixed now.

Activity icon

Commented on How To TDD Artisan Commands

Yeah, exactly. Generally, I'd recommend faking the API call in all tests except the one where you specifically test the third party API. I often add PHPUnit tags (like @api) to these sorts of tests, since they're slower and don't need to run every time you trigger your test suite.

phpunit --exclude-group api
May
05
2 weeks ago
Activity icon

Commented on Product Tracking

^ This is fairly close to what we'll work on in the next episode. Nice job. 👍

May
04
3 weeks ago
Activity icon

Replied to Other Languages

Thank you, but I think the appeal of the site is partially due to the fact that we don't cover all languages. Laracasts is very much a site for full-stack PHP developers.

Apr
29
3 weeks ago
Activity icon

Commented on Arrow Functions

Thanks, fixed.

Activity icon

Commented on Null Coalescing Assignment Operator

It's unrelated to Valet. I'm not doing anything fancy. I used brew to install both versions of PHP.

Apr
28
3 weeks ago
Activity icon

Commented on Arrow Functions

Yes, Terminus.

Activity icon

Awarded Best Reply on How Can I Edit Comments Under Laracast Lessons?

@freelandkate If you hover over any comment, you'll see an "Edit" link.

Apr
27
4 weeks ago
Activity icon

Replied to How Can I Edit Comments Under Laracast Lessons?

@freelandkate If you hover over any comment, you'll see an "Edit" link.

Apr
21
1 month ago
Activity icon

Commented on File Storage And Custom Avatars

That happens automatically as part of the setPasswordAttribute mutator.

Apr
20
1 month ago
Activity icon

Commented on Refactoring For Flexibility

Intentional.

Apr
16
1 month ago
Activity icon

Commented on Build A Like/Dislike System

I wanted to dedicate at least one episode to showing how to construct more complex Eloquent queries. In this case, you're right that we could alternatively reach for the withCount helper. I'd probably instead add two relationships for likes and dislikes.

public function likes()
{
    return $this->hasMany(Like::class)->where('liked', true);
}

public function dislikes()
{
    return $this->hasMany(Like::class)->where('liked', false);
}

And then, you can load the likes_count and dislikes_count like this:

App\Tweet::withCount(['likes', 'dislikes'])->first();

Which would output:

=> App\Tweet {#3059
     id: 1,
     user_id: 1,
     body: "My first tweet.",
     created_at: "2020-04-06 17:27:09",
     updated_at: "2020-04-06 17:27:09",
     likes_count: 2,
     dislikes_count: 1,
   }
Apr
14
1 month ago
Activity icon

Commented on Build A Like/Dislike System

Yeah - that's a good candidate for a future update.

Apr
13
1 month ago
Activity icon

Commented on Clean Up

Sorry about that! Fixing now.

Apr
09
1 month ago
Activity icon

Commented on Build The Explore Users Page

Yeah, true!

Apr
07
1 month ago
Activity icon

Commented on Build The Follow Form

Thank you! I'm glad to hear that. :)

Activity icon

Commented on Making Things Reactive

Doh whoops - sorry about that!

Apr
06
1 month ago
Activity icon

Commented on Build The Follow Form

Install the Prettier PHPStorm plugin, and then do

npm install prettier @prettier/plugin-php --save-dev
Apr
02
1 month ago
Activity icon

Commented on Build The Follow Form

Yeah, there's a number of things like that we'll fix soon.

Apr
01
1 month ago
Activity icon

Commented on Build The Follow Form

Yep - check the GitHub commit. There's a comment about switching to toggle in the next episode.

Fun fact - that method is one of my small contributions to the framework years ago. Very few people know about it.

Activity icon

Commented on Build The Follow Form

No - because I' m actually using a Laravel 7 install for this final project.

Mar
31
1 month ago
Activity icon

Commented on Construct The Profile Page

Good recommendation. I didn't know Tailwind had translate helpers. Very nice!

Mar
30
1 month ago
Activity icon

Awarded Best Reply on WYSIWYG Editor On The Laracasts

@stillfinder That's called Markdown. You'll need to use either a backend or frontend library to translate the Markdown into HTML.

This is what I use behind the scenes:

https://github.com/thephpleague/commonmark

Activity icon

Replied to WYSIWYG Editor On The Laracasts

@stillfinder That's called Markdown. You'll need to use either a backend or frontend library to translate the Markdown into HTML.

This is what I use behind the scenes:

https://github.com/thephpleague/commonmark

Mar
29
1 month ago
Activity icon

Commented on Expanding The Timeline

Haha I promise it is. Very few people make it through a full 30 minute video. Only the die-hards.

Mar
27
1 month ago
Activity icon

Commented on Expanding The Timeline

Probably not something we'll do, but I will make the exported assets available on GitHub.

Activity icon

Commented on Expanding The Timeline

I think it's better to stay on task. It's too easy to branch off into tangents that turn a 15 minute video into 30.

Mar
23
2 months ago
Activity icon

Commented on Make The Timeline Dynamic

It does. That's why I mentioned instead doing unsignedBigInteger.

Activity icon

Commented on Make The Timeline Dynamic

Yes, we'll end up with something like this what you have there soon.

Mar
19
2 months ago
Activity icon

Awarded Best Reply on Laracasts - Series Page Error When Logged In?

This seems to have only affected certain users, so it's a little tough to debug. But can you let me know if it's still not working for you? I've cleared a few cache related things.

Activity icon

Replied to Laracasts - Series Page Error When Logged In?

This seems to have only affected certain users, so it's a little tough to debug. But can you let me know if it's still not working for you? I've cleared a few cache related things.

Activity icon

Commented on Design The Timeline

Yes, I'll make them available as part of episode 3.

Mar
18
2 months ago
Activity icon

Commented on Twitter Clone Setup

Not sure. Maybe 5.

Mar
13
2 months ago
Activity icon

Commented on Make Your Apps Faster With Turbolinks

Whoops - fixed.

Activity icon

Commented on Make Your Apps Faster With Turbolinks

In the next version, we might. Laracasts is currently a very Vue-heavy application which makes a lot of Turbolinks functionality difficult.

Mar
06
2 months ago
Feb
28
2 months ago
Activity icon

Commented on Roles And Abilities

I might. But if we did, it would only be as a demo package. There are too many existing authorization packages that are well maintained.

Activity icon

Commented on Roles And Abilities

Ah forgot about that! Nice one.

Activity icon

Commented on Roles And Abilities

Actually, I just noticed a little mistake in our Gate before filter. We should only return from that method if the user has the given ability. Sorry about that!

Gate::before(function ($user, $ability) {
    if ($user->abilities()->contains($ability)) {
        return true;   
    }
});

https://github.com/laracasts/roles-and-abilities/commit/dc2e2f2dec1b8a6290bccb6dbbcdeab774440479

Feb
27
2 months ago
Activity icon

Commented on Middleware-Based Authorization

Five months actually, but let's see how long it takes you to record 60 episodes. :)

Almost done.