JeffreyWay

JeffreyWay

Owner at Laracasts

Member Since 6 Years Ago

Chattanooga, TN

Experience Points
478,770
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
324
Lessons
Completed
Best Reply Awards
358
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
478,770 XP
Jul
04
1 week ago
Activity icon

Awarded Best Reply on Allowed Memory Size Of 1610612736 Bytes Exhausted (tried To Allocate 4096 Bytes)

Hmm, did you restart PHP?

Do you still have an issue if you change memory_limit to -1?

memory_limit = -1

Also, you might try running php --ini and checking if there's an additional parsed .ini file. Something like php-memory-limits.ini.

Jul
01
1 week ago
Activity icon

Replied to Allowed Memory Size Of 1610612736 Bytes Exhausted (tried To Allocate 4096 Bytes)

Hmm, did you restart PHP?

Do you still have an issue if you change memory_limit to -1?

memory_limit = -1

Also, you might try running php --ini and checking if there's an additional parsed .ini file. Something like php-memory-limits.ini.

Jun
29
1 week ago
Activity icon

Commented on Transitions 101

The Watchlist button will do that now.

Jun
24
2 weeks ago
Activity icon

Replied to Is There A Podcast Playlist?

No, there isn't. Honestly, I more expect folks to listen to the podcast using a dedicated player on their phones, like Overcast.

Activity icon

Commented on How And When To Extract Component Logic

I don't think so.

The primary benefit would be for general organization.

Jun
22
2 weeks ago
Activity icon

Commented on Two-Way Data Binding

Yep ^

Activity icon

Replied to Laravel -error

I'm thinking it might be a good idea to provide more information...

Activity icon

Commented on Mobile Nav Link Component

That's called Emmet. Look for a keymap like, "Surround with Emmet."

Jun
19
3 weeks ago
Activity icon

Commented on Let's Build A Memory Game

Can you paste your source code?

Activity icon

Commented on Mobile Nav Link Component

I can think of a hundred other performance-related issues to worry about before that.

Jun
18
3 weeks ago
Activity icon

Commented on Tabs Component

P.S. Have a look at the source code for the episode if you want to see all the relevant ARIA attributes.

https://gist.github.com/JeffreyWay/d5d86f48a527d3c3819a67cfb793926d

Jun
16
3 weeks ago
Activity icon

Commented on Mobile Nav Link Component

Add a class of md:hidden to your dropdown menu.

Activity icon

Commented on Data Binding

It's called "Embedded Web Browser," by starxg.

That said, I don't really use it in my day-to-day coding. It's buggy and only useful for quick screencast demos.

Jun
15
3 weeks ago
Activity icon

Commented on Nav Link Component

Yes.

Jun
12
1 month ago
Activity icon

Commented on Let's Build A Memory Game

Haha, yeah, but I did add it to the source code.

https://gist.github.com/JeffreyWay/715d41f097bd1e4629f817f93886ae70

A simple enough way is to do:

let cards = ['...'].sort(() => Math.random() - .5);
Jun
04
1 month ago
Activity icon

Commented on Form Component

The only reason why I set the action's default to an empty string is because that's valid. Having an action of an empty string will default the submission URL to the page the browser currently has loaded. That may be what you want.

But yeah, if you don't want to allow that, your snippet is useful.

Jun
03
1 month ago
Activity icon

Commented on Flash Component

You could do either in this case. πŸ‘

Activity icon

Commented on Make The Index Page Responsive

Whoops! Fixing now.

Jun
02
1 month ago
Activity icon

Commented on Form Component

I just forgot, but, yeah, the browser will add it automatically.

May
28
1 month ago
Activity icon

Commented on Techniques For Testing Against A Real API

tap() is the greatest. πŸ€Έβ€β™‚οΈ

Activity icon

Commented on Simpler Code With UseCase Classes

Depends on your definition of SRP.

I think it's better to not reach for rules, and instead ask yourself which version you'd prefer to return to a year from now when you need to update how stock is tracked.

May
22
1 month 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
1 month 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
1 month 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 month 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 months 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 months 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 months 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
2 months 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
2 months 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
2 months 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
2 months 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
2 months ago
Activity icon

Commented on File Storage And Custom Avatars

That happens automatically as part of the setPasswordAttribute mutator.

Apr
20
2 months ago
Activity icon

Commented on Refactoring For Flexibility

Intentional.

Apr
16
2 months 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
2 months ago
Activity icon

Commented on Build A Like/Dislike System

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

Apr
13
2 months ago
Activity icon

Commented on Clean Up

Sorry about that! Fixing now.

Apr
09
3 months ago
Activity icon

Commented on Build The Explore Users Page

Yeah, true!

Apr
07
3 months 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
3 months 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
3 months ago
Activity icon

Commented on Build The Follow Form

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

Apr
01
3 months 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.