🔥 If you're allowing a ?perPage= query param to be specified for your pagination results, LIMIT it! Particularly if you have a huge number of potential records.
You can do this easily with the native min() PHP function. https://t.co/aNW7K09Zdt
🔥 Sometimes, when using factories to seed random data, I might use a little random check to use an existing model for some relationships so not everything ends up creating new models for its own relations.
It helps seeded data feel a lot more realistic to use. https://t.co/4GboYEfmcM
🍭 You can utilise the Illuminate\Support Str + Arr classes in views without importing them
No need to reach for a fully qualified name or the str_ / arr_ helpers
They are defined as an alias in config/app.php which makes them available in the root namespace
They just work™️ https://t.co/gUcutOebUL
#Laravel tip of the day: if you use Model Observers, and want to update some model and prevent observer from being fired again, you can use Eloquent method $model->saveQuietly(); https://t.co/tMWYznYv5B
#Laravel tip of the day: when seeding data with Faker, you can change locale in config/app.php and it would generate phone numbers and street addresses specific for that region.
Read more in the official docs: https://t.co/eCfSilhyhH https://t.co/cjdrsUgGgk
🚀 Pipelines in Laravel are a nice way of breaking up a sequential process into reusable blocks.
With the new Telescope release, you can easily send Slack notifications for Exceptions with a direct link to Telescope, using the new Telescope::afterStoring() hook. Makes it even easier to track down the context of the error 💡 https://t.co/wTKwcloN44 https://t.co/uC2Pq6Qbgh
🔥 I often find myself keeping validation rules in a method on the model. This lets me reuse them wherever I may need - including in controllers or form requests. https://t.co/QDjYFEN2vM
#Laravel tip: There is a way to make your seeders faster so you don't waste so much time inserting the data into your database, you only need to do a single query. check it out! https://t.co/WxskqWlklQ
Me: *dreads having to rename a database table in my code*
Laravel documentation:✨ It's just Schema::rename('old_name', 'new_name') my dude ✨
#Laravel tip of the day: if you want to have active/inactive (or, in other words, banned/suspended) users in your database, just add this method into your LoginController, it will act like a Middleware. https://t.co/BiMhzFIElF
🔥 Controllers often have the most code as they contain all the business logic.
By leveraging native components and expressive methods, we can streamline our controllers while also improving readability. A huge win.
Here are some examples of reducing common blocks of code: https://t.co/ZCZXG4iAqa
#Laravel tip of the day: if you want to change default validation error message for specific field and specific validation rule, just add a messages() method into your FormRequest class. Read more in the official docs: https://t.co/CHNA33VcW7 https://t.co/l0BINfIQwy
🔥 TIL @laravelphp 7.0 adds 2 new convenient Blueprint methods for migrations:
🔥Tip: easily test if a message was logged or an exception was reported within Laravel using the build in log handler https://t.co/yZhruHFYxQ
🥳! Time to upgrade and make those code-bases prettier! https://t.co/PmUZEhz6dm
🔥 Reminder: When testing with Laravel, you can use the from() method to automatically set a referer url. This allows you to test redirects that use the redirect()->back() helper. https://t.co/1ny0hrAY2c
TIL: you can use Carbon's translatedFormat() instead of format() to translate the formatted string. https://t.co/ZVbCtHwE3F
🌟 I'm working on a little feature at the moment and I thought it might be worth sharing. Another tip when you need to work with time intervals and seconds.
Using `CarbonInterval` makes it much more readable. https://t.co/ktpNR7BoKY
This is something I don't think we document well enough. If you prefer a "Models" directory... you can do things like php artisan make:policy PhotoPolicy --model=Models/Photo.... php artisan make:model Models/Photo... etc. All works fine! 🥰 https://t.co/ZykVwAbpgH