Dalam artikel ini kita akan membahas apa-apa saja yang terbaru dalam rilis kali ini. Oia, semua perbaruan ini dikontribusi oleh tim inti dari laravel yaitu Tim MacDonald.
Dalam artikel ini kita akan membahas apa-apa saja yang terbaru dalam rilis kali ini. Oia, semua perbaruan ini dikontribusi oleh tim inti dari laravel yaitu Tim MacDonald.
Dengan adanya metode baru ini, kita bisa dapat dimudahkan melakukan sesuatu jika query yang kita load telah melebihi waktu yang kita tentukan. Jadi Anda bisa langsung memasukkan fungsi itu didalam file app/Providers/AppServiceProvider.php
seperti berikut:
namespace App\Providers;
use Illuminate\Database\Connection;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
...
public function boot()
{
DB::whenQueryingForLongerThan(500, function (Connection $connection) {
// Beritahu developer tentang hal ini
});
}
}
Dulunya, sebelum adanya fitur ini, kita akan mengulang-ulang dari satu relasi ke tabel relasi lain.
Bayangkan, disini kita akan menampilkan tabel documents
yang isinya pasti ada authornya, tetapi author itu juga punya dua relasi ke tabel lain yang mesti kita tampilkan juga.
Maka sebelumnya kita akan menggunakan seperti ini:
Document::query()
->with(['user.articles', 'user.address'])
->get();
Nah, dengan adanya fitur ini, kita bisa nest dia dengan cara:
Document::query()
->with([ 'user' => ['articles', 'address']])
->get();
Dalam fitur ini, kita jauh lebih mudah untuk mendefinisikan custom validasi. Nantinya, setelah kita generasi file nya dari command line
, maka dia akan otomatis membuat file tersebut didalam folder app/Rules
:
php artisan make:rule Lowercase --invokable
Setelah itu, maka Anda akan melihat file tersebut hanya dengan satu metode saja yaitu __invoke
seperti:
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\InvokableRule;
class Lowercase implements InvokableRule
{
/**
* Run the validation rule.
*
* @param string $attribute
* @param mixed $value
* @param \Closure(string): \Illuminate\Translation\PotentiallyTranslatedString $fail
* @return void
*/
public function __invoke($attribute, $value, $fail)
{
if (strtolower($value) !== $value) {
$fail('The :attribute must be lowercase.');
}
}
}
Semoga informasi terbaru ini berguna ya teman-teman.
Let's start living like no one can help us in any event, so that when we are helped in certain times, it becomes a plus in itself.