Some Laravel Tips and Tricks
- 2022年2月15日
- 技術情報
Today I would like to share some laravel tips and tricks. Let’s take a look.
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();
// 2022-02-14 02:12:34
echo now()->setSeconds(0);
// 2022-02-14 02:12:00
echo now()->setSeconds(0)->setMinutes(0);
// 2022-02-14 02:00:00
// Another way – even shorter
echo now()->startOfHour();
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 100×100 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)
];
});
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);
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
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);
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”
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)) {
//
}
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
This is all for now. Hope you enjoy that.
By Asahi
waithaw at 2022年02月15日 10:00:00