naykel

naykel

Member Since 1 Year Ago

Experience Points
9,390
Total
Experience

610 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
90
Lessons
Completed
Best Reply Awards
0
Best Reply
Awards
  • start-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-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-token Created with Sketch.

    Subscriber

    Earned if you are a paying Laracasts subscriber.

  • lifer-token Created with Sketch.

    Lifer

    Earned if you have a lifetime subscription to Laracasts.

  • lara-evanghelist 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
9,390 XP
Jan
17
5 days ago
Activity icon

Replied to Is There A Way You Change The Request Attribute Name To Match A Database Column?

I just realised I have had one of those brain snap moments when you spend so much time looking for some magic Laravel way that you forget the obvious. I was thing in terms of updating the database and did not think to just assign the value before persisting the database.

$validatedData['file_path'] = path from file instance;

This is the problem when you are trying to learn and you are spoiled with all the goodies Laravel provides. You stop thinking in terms of how do I code this and start think what is the magic way of doing this!

Thanks.

Activity icon

Started a new Conversation Is There A Way You Change The Request Attribute Name To Match A Database Column?

I have a database field called file_path and the input name is file so the validation does not work because they are different names.

I know the obvious answer is to change the input name to match the column name but in this particular case I find that complicates things. I see file as the file instance and file_path as the path that comes from the file instance.

Jan
09
1 week ago
Activity icon

Replied to Verification Emails Not Working With SMTP

I have just tested on my live server and it works fine!!!

This problem seems to be isolated to sending the verify email working on localhost.

Activity icon

Replied to Verification Emails Not Working With SMTP

You can overiide in the .env file by adding [email protected] and MAIL_FROM_NAME=FromYou

Activity icon

Replied to Verification Emails Not Working With SMTP

I have checked all the obvious things because you are right in saying that it normall turns out to be something silly, however this time round it is not the case. If it were the case the contact form which uses the same credentials would not work either.

I also check with telescope and all the details are correct.

Activity icon

Replied to Verification Emails Not Working With SMTP

Yes. It is important that anyone that reads this is aware that the verification email works fine when using mailtrap and mailgun. The problem ONLY exists when using my own SMTP settings even tho I can use them to send other emails.

This would be so much easier to solve it they all failed but they don't!

Activity icon

Replied to Verification Emails Not Working With SMTP

I have tested and the SMTP setting are definitaly correct.

Just to clarify, I am able to send emails without any problems using the mailable class, this issue only occurs when sending the verification email after a user registers. The registration is successful are no errors are displayed so it appears to be working fine except there is no email for the user to verify their account.

Activity icon

Started a new Conversation Verification Emails Not Working With SMTP

I would like to send user verification emails; I have tested with mail trap and it works fine but when I use my SMTP settings it no longer works.

I have checked my settings and can confirm they are fine if for no other reason than I have other mailables set up that work fine.

I done some further testing using mail gun and can confirm that the verification email was sent.

This problem seems to only occur when sending a verification email using my own SMTP settings.

Any suggestions?

Dec
16
1 month ago
Activity icon

Replied to Temporary Collection Attribute

Something so simple. I spent so much time trying to find some magic Laravel method that I did not even think of the direct approach. Cheers.

public function index() {

    $currentCourses = StudentCourse::current();
    
    foreach ($currentCourses as $cc) {
        
        $started_at = Carbon::parse($cc->started_at);
        $now = Carbon::now();
        $validForDays = 100;
        
        $daysRemaining = Carbon::parse($started_at)->diffInDays($now);
        
        $cc['daysRemaining'] = $daysRemaining;
    }
    
    return view('user.dashboard')->with('currentCourses', $currentCourses);
}

Template

@foreach ($currentCourses as $cc)

Days Remaining: {{ $cc->daysRemaining }}

@endforeach
Dec
15
1 month ago
Activity icon

Started a new Conversation Temporary Collection Attribute

Is there a way to add an additional temporary attribute in a collection?

To be clear, I do not want to permanently store the value in the database as it is a days remaining count down which when the days remaining = 0 the item will no longer appear in the collection anyway. This is purely a visual for the UX.

This is the logic to work out the days remaining

// Parse the database date
$started_at = Carbon::parse(StudentCourse::find(4)->started_at);
$now = Carbon::now();
$validForDays = 100;


$daysRemaining = Carbon::parse($started_at)->diffInDays($now);

This is the method that returns the collection

public function index() {

    $data = [
        // add days to expire in this colection???
        'currentCourses' => StudentCourse::current(), // courses not expired
    ];

    return view('user.dashboard')->with($data);
}

This would be the ideal method to display the values in the front-end

@foreach ($currentCourses as $cc)

{{-- This value is not in the collection --}}
<p>Days Remaining: {{ $cc->daysRemaining }}</p>

@endforeach
Dec
10
1 month ago
Activity icon

Replied to Create Redirect Method With Switch Statement

Simple as adding return

return $this->redirectTo()

Dec
08
1 month ago
Activity icon

Started a new Conversation Create Redirect Method With Switch Statement

Hello, I have created a reusable toolbar setting the buttons with different values so I can perform redirects using a switch statement base on the values. For the most part this works exactly exactly as I want..

public function update(Course $course)   {

    // other validate and save actions goes here

    switch (request('action')) {

        case 'save_stay':
            return back()->with('flash', 'Course saved!');
            break;

        case 'save_close':
            return redirect('admin/courses')->with('flash', 'Course saved!');
            break;

        case 'save_new':
            return redirect(route('admin.courses.create'))->with('flash', 'Course saved!');
            break;

        case 'back':
            return redirect('admin/courses');
            break;
    }
}

This toolbar works for both storeand update methods so I would like to make a resuable function, however the redirects no longer work. What am I missing here?

public function store(Course $course) {

    // other validate and save actions goes here

    $this->redirectTo(request('action'));
}

public function update(Course $course) {

    // other validate and save actions goes here

    $this->redirectTo(request('action'));
}

public function redirectTo($action)  {
    switch ($action) {

        case 'save_stay':
            return back()->with('flash', 'Course saved!');
            break;

        case 'save_close':
            return redirect('admin/courses')->with('flash', 'Course saved!');
            break;

        case 'save_new':
            return redirect(route('admin.courses.create'))->with('flash', 'Course saved!');
            break;

        case 'back':
            return redirect('admin/courses');
            break;
    }
}
Dec
03
1 month ago
Activity icon

Replied to SOLID Design Principles And Data Manipluation

Thanks for the input, I see that there are many ways and all of your answers gave me a little more clarity and if nothing more gave me some better questions to google. Time to stop procrastinating and get things done!

Dec
02
1 month ago
Activity icon

Started a new Conversation SOLID Design Principles And Data Manipluation

I am trying to adopt the SOLID design principles while keeping with the 'Single Responsibility Principle' I have moved my form validation from my controller to it own 'Form Request'. While this seemed pretty straight it some cases it raised more questions, specifically when it comes to data manipulation.

For example, I have recently discovered it is considered good practice to store money values in cents. Therefore at some point there needs to be a calculation to manipulate the value from dollars to cents or vice versa.

Should this be done in the 'UpdateProductRequest' or the 'ProductController' or somewhere else again?

// ProductController
public function update(ValidateProduct $request, Product $product) {

    $validatedData = $request->all();

    $product->update($validatedData);
    
}


// UpdateProductRequest
public function rules()
{
    $validatedData = [
        'name' => 'required|min:3',
        'price' => 'sometimes|numeric',
    ];
    
    $validatedData['price'] = $validatedData['price'] * 100;
    
    return $validatedData;
}