Our Black Friday sale is now live! All individual subscriptions are 50% OFF. This week only!

schaeferalex

schaeferalex

Member Since 3 Years Ago

Experience Points
7,580
Total
Experience

2,420 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
43
Lessons
Completed
Best Reply Awards
5
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 2
7,580 XP
Nov
24
13 hours ago
Activity icon

Awarded Best Reply on Laravel 8 IDGenerator [update]

As @laracoft has already mentioned, this is bad idea. When using a string as primary key you won't be able to do +1 because you are mixing types. A better approach would be to add your prefix or suffix in the presentation layer or your model, e.g.

public function getDisplayIdAttribute()
{
    return 'INV-' . $this->id;
}

However, if you wanted to implement your own id generation logic use model events https://laravel.com/docs/8.x/events

protected static function booted()
{
    static::creating(function ($model) {
        if (!$model->getKey()) {
            $model->id = (string) Str::uuid();
        }
    });
}
Nov
23
1 day ago
Activity icon

Replied to Laravel 8 IDGenerator [update]

As @laracoft has already mentioned, this is bad idea. When using a string as primary key you won't be able to do +1 because you are mixing types. A better approach would be to add your prefix or suffix in the presentation layer or your model, e.g.

public function getDisplayIdAttribute()
{
    return 'INV-' . $this->id;
}

However, if you wanted to implement your own id generation logic use model events https://laravel.com/docs/8.x/events

protected static function booted()
{
    static::creating(function ($model) {
        if (!$model->getKey()) {
            $model->id = (string) Str::uuid();
        }
    });
}
Nov
21
3 days ago
Activity icon

Replied to Laravel 8 IDGenerator [update]

There is no need to do this in your application code. Assuming that you are using MySQL as your database engine:

MySQL has an AUTO_INCREMENT attribute which will automatically generate an id for you based on the last inserted id: https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html

In your customer table migration you should have a line like this:

$table->id();

Which means: A field with the name "id" will be generated, this field will be your primary index and it will be auto-incrementing.

When you want to insert a new customer, just insert all the attributes you need, like name, address etc. Don't worry about the id field, MySQL will automatically populate it for you.