Laravel is an open-source PHP framework, which is robust and straightforward to understand. It is used for building a wide range of custom web applications. It supports a model-view-controller design pattern.
Laravel aims to provide an outstanding developer experience while giving powerful features such as thorough dependency injection, queues, and scheduled jobs, an expressive database abstraction layer, unit and integration testing, and many more. If you already have php knowledge then you can easily understand Laravel. Today I’ll share some great tips and tricks that will help you in intensifying your coding level.
1. Use Carbon with Only Hours
If you want to have a current date without seconds and/or minutes, use Carbon’s methods like setSeconds(0) or setMinutes(0).
echo now();
// 2020-04-20 08:12:34
echo now()->setSeconds(0);
// 2021-08-11 07:12:00
echo now()->setSeconds(0)->setMinutes(0);
// 2021-08-11 08:00:00
// Another way - even shorter
echo now()->startOfHour();
2. Generate Images with Seeds/Factories
Normally, We use Faker to generate fake text values in seeds and factories. But do you know that you can generate not only text values but also Images by Faker?
For example:
See image field here - it will generate 100x100 image:
$factory->define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => bcrypt('password'),
'remember_token' => Str::random(10),
'Image' => $faker->image(storage_path('images'), 100, 100)
];
});
3. Use Older Laravel Version
If you want to use the older Laravel version instead of the newest Laravel, You can do this by running this command:
composer create-project --prefer-dist laravel/laravel project "7.*"
You can easily change 7.* to whichever version you want.
4. Simple Pagination
In pagination, if you need just “Previous/next” links instead of all the page numbers (and have fewer DB queries because of that), You can do this easily by changing paginate() to simplePaginate():
// Instead of
$products = Product::paginate(8);
// Now you can do this
$products = Product::simplePaginate(8);
5. Send Notifications to Anyone
You can send Laravel Notifications not only to a specific user with $user->notify(), but also to anyone you want, via Notification::route(), with so-called “on-demand” notifications:
Notification::route('mail', 'Jhon@gmail.com')
->route('test', '123456')
->route('slack', 'https://hooks.slack.com/services/...')
->notify(new InvoicePaid($invoice));
6. Use @auth in Blade
Instead of an if-statement to check logged-in users, You can use the @auth directive in your blade file.
Old way:
@if(auth()->user())
// The user is authenticated.
@endif
Latest:
@auth
// The user is authenticated.
@endauth
The opposite is @guest directive:
@guest
// The user is not authenticated.
@endguest
7. Check the view file exists
You can check if the View file exists before actually loading it.
if (view()->exists('admin.dashboard')) {
// Load the view
}
You can even load an array of views, and only the first existing will be loaded.
return view()->first(['admin.dashboard', 'dashboard'], $data);
8. Create migration without underscore _ symbol
When you are running a make:migration command, you don’t necessarily have to write underscore _ symbol between parts, like create_users_table.
// with underscore _ symbol
php artisan make:migration create_users_table
You can enter the name into quotes and then utilize spaces instead of underscores.
// without underscore _ symbol
php artisan make:migration "create users table"
9. Use Auth::once()
Do you know that you c
an log in with the user only for One Request? You can easily do this by utilizing the method Auth::once(). No sessions or cookies will be used, which indicates this method may be applicable when building a stateless API.
if (Auth::once($credentials)) {
//
}
10. Use @canany to check multiple permissions at once
Earlier, You use the @can directive to check if a user has a certain permission. Now, you can also check multiple permissions at once with the @canany directive.
@canany(['update', 'view', 'delete'], $blog)
// The current user can update, view, or delete the blog post
@elsecanany(['create'], \App\Blog::class)
// The current user can create a blog post
@endcanany
I hope that these tips and tricks will help you in your laravel journey and enhance your coding skills. You can also view my previous article on laravel tips here.