Have you tried watching the videos on here?
Maybe start with something like this:
https://laracasts.com/series/laravel-from-scratch-2018
That's how I did and I found it pretty easy to pick up (credit to Jeff, not my intelligence).
Cheers,
Mick
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
A little bit of background, I’ve been developing in PHP for the best part of 15 years. I started with standard procedural code and worked my way onto object orientation.
For the last 5 years or so I’ve been using the CodeIgniter 3 framework, which I absolutely love. I’ve built a number of applications with CI in rapid time and enjoyed every moment of it. However, the thing that has niggled in the back of my mind is that CodeIgniter is not well regarded any longer – some might say it’s deprecated or obsolete, and it seems nearly everyone uses Laravel.
So I’ve taken the plunge and decided to learn Laravel. How difficult can it be when I have a pretty good understanding of PHP and another MVC framework? The answer, for me at least, is incredibly difficult.
I’ve read through the documentation and created the two example Task apps (beginner and intermediate). I’m now creating my own simple app for storing customers and customer interests. I’m adding authentication and authorization (permissions) to the app now.
But my god, I’m finding it to be the equivalent of trying to push water uphill. Right away I can see how flexible routing is in Laravel, as well as the ability to define relationships between models, and a few other things which look genuinely useful/helpful. But then I just run into one issue after another. Some of the problems I face:
Naming conventions - OK – this is a minor gripe, but I come from a background where things are called controllers, models, views, templates, helpers, libraries, etc. In Laravel we have names like Eloquent, Facade, Blade, etc. It’s not a deal breaker, but the weird and wonderful names don’t particularly help with the learning curve.
What to use when - In Laravel there are service providers, middleware, the kernel and other things I’m not too familiar with. I find myself constantly scratching my head what I need to use and where. For example, I want get the name of the current controller class and method, put them in two separate variables and share them across all views. So I extend the BaseController and do it in the constructor. This works fine, but it doesn’t seem to be the “correct” way. So I create a Service Provider instead, however I can’t seem to get details of the current Route in a Service Provider (it returns null), so then I create a Middleware and do it that way. After some 2 hours I have the concept working, but when I look at tutorials online they often use a completely different method which just boggles my mind.
Confusing code – For example if I don’t want to do cascade deletes on relationships in my database, when deleting a customer I’ll first want to delete all of their interests, so I’m doing this in my Customer controller:
public static function boot() {
parent::boot();
static::deleting(function($customer) {
$customer->interests()->delete();
});
}
OK it works, but it took me a long time to figure this out. Originally I was just creating my own delete() method in my controller thinking this would just extend/override the delete() method of the main Eloquent Model, but it didn’t work.
So this isn’t a rant. I know it sounds like one, but I’m frustrated with myself more than anything else for finding this so damn difficult. Furthermore, when I look around for confirmation that I’m not the only one, all I can find are positive remarks about Laravel and how it’s changed every developer’s life for the better, further making me feel like some kind of weird outsider.
Did anyone else ever feel this way? Am I really the only one? Is it a case of just whittling away at it for hours on end and it becomes easier? Any tips or helpful words of wisdom to encourage me to battle on?
Thanks in advance!
Have you tried watching the videos on here?
Maybe start with something like this:
https://laracasts.com/series/laravel-from-scratch-2018
That's how I did and I found it pretty easy to pick up (credit to Jeff, not my intelligence).
Cheers,
Mick
Please or to participate in this conversation.