Software Engineer at Friendemic

Member Since 4 Years Ago

Asheville, NC

Experience Points

850 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
Best Reply Awards
Best Reply
  • 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.


    Earned if you are a paying Laracasts subscriber.

  • lifer Created with Sketch.


    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 13
64,150 XP
3 months ago
Activity icon

Commented on Widget Workshop

I would probably converting these widgets into AJAX requests if the page started getting heavy, but this is great approach.

3 months ago
Activity icon

Commented on Intro To PDO

Try calling die($e->getMessage()); instead of the one that you have.

3 months ago
Activity icon

Commented on Step 8: Booleans

An option you have there is to use the continue key word.

At the beginning of your loop, you can add an if check and if that returns true use the continue key word to skip to the next iteration in the loop:

foreach ($task as $key => $value) {
    if ($key === 'completed') {
	// do other stuff here if you want
    // do normal loop stuff

There is also a break key word that will immediately jump out of the loop and not process any more of the remaining iterations.

Activity icon

Commented on Step 7: Associative Arrays

It might possible be that you saved the index.php file when $person = []; and then made unsaved changes to the $person array. Just a guess.

Activity icon

Commented on Step 3: Variables

Actually that is not concatenation. What is happening is that you are passing a comma separated list of arguments to echo. Behind the scenes, echo is concatenating those arguments together (you'll notice that you have an extra space between the , and $name in the result).

You'll see that it is not concatenating if you tried to assign that "concatenated" result to a variable.

$fullGreeting = $greetings, ', ', $name;

You'll get a syntax error.

4 months ago
Activity icon

Replied to 'laravel_session' Cookie Is Not Set

I know this is an old conversation, but I just wanted to bring up @cronix mentioning being behind a load balancer or some other service in front of the server. This same issue just happened to me and we are using AWS Cloudfront in front our our ECS setup. We needed to setup Cloudfront to allow cookies to be forwarded. After we fixed that, we were good to go. Thanks for bringing that up @cronix !

4 months ago
Activity icon

Commented on Sweat The Small Stuff

According to the Laravel API docs, it has been around since at least Laravel 5.5:

If you are you using a version prior to that, it may not have been available yet.

5 months ago
Activity icon

Commented on Instant File And Symbol Traversal

try lowercase p for going down and uppercase P for going up

5 months ago
Activity icon

Replied to Where Does Envoyer Deploy An App If You’re Not Using Forge?

Wherever you tell it to in the server setup. Forge is not dependent on Envoyer and Envoyer is not dependent on Forge.

Activity icon

Replied to High Resolution Image Upload Fails

Have you updated you php.ini to allow for larger uploads? I believe by default it is set to 2MB

Activity icon

Replied to Looking For Laravel Developer

Buyer beware when the seller is too cheap to post to LaraJobs haha

Activity icon

Commented on Make It Clean And Pretty

It was mentioned in the video that Cmd+, will get you to the settings page on a Mac. It looks like Ctrl+, has the same effect in Linux. I would guess that would be true in Windows if someone else wanted to confirm.

5 months ago
Activity icon

Commented on Invokable Classes

If it works then it is acceptable :). I am curious about your use case. Can you elaborate?

5 months ago
Activity icon

Commented on Exceptions

Really liked the idea of creating more generic domain exceptions with different types of static constructors. Very clean. Thanks!

Activity icon

Commented on Handshakes And Interfaces

To give a broad stroke example of the value of interfaces, think about how a framework like Laravel provides multiple types of mail drivers. Us as users only have to worry about setting the driver we want and then we can use the Laravel mail 'interface' without having to worry coding our Mailables in a certain way depending on the driver.

For instance say we start using smtp driver for our project. That works great for about a year, but then we start seeing value in using AWS SES for our mail service. Glossing over a few details, all we really need to do is change the driver to ses...we don't have to change our Mailable code because it is (at a deeper level in Laravel) an interface. The AWS SES code is implementing that interface, as are the other drivers. Even though each driver does each thing in completely different ways, since they all implement the same interface, us as users can just code to that interface without having to worry about all the junk behind the scenes.

What Jeffery demonstrated in his video was an example of a common saying: "Code to an interface, not to an implementation"

Coding to an interface allows you to swap out implementations. Coding to an implementation forces you to change a lot more code if you ever decide to go to another implementation.

So in the example I gave, Laravel is forcing us to code to an interface, the Mailable code, and not to an implementation such as calling AWS SES code directly.

Activity icon

Commented on Inheritance

The Collection class has a property of $items which is an array of Video objects.

The sum() method is passing that "length" string into the array_map() function. It is then used on the Video object: $item->$key is now equivalent to $item->length where $item is an instance of the Video class.