+4

Laravel 5.5 sẽ có gì mới - Phần 2

Mình có giới thiệu một số đổi mới có thể xảy ra trong Laravel 5.5 ở phần 1, nếu bạn chưa xem có thể vào đây để xem lại P1: https://viblo.asia/blaysku/posts/Az45bN6N5xY


8. Cải tiến giao diện báo lỗi mặc định

Giao diện báo lỗi trên Laravel 5.4 và trên 5.5 Các error template sẽ mặc định extends errors::layout...

9. Trả về dữ liệu yêu cầu từ Validator

Trong Laravel 5.5, Validator sẽ chỉ trả về dữ liệu được yêu cầu, vậy nên sẽ không có dữ liệu dư thừa nếu bạn không muốn.

public function store()
{
    $data = $this->validate(request(), [
        'name' => 'required',
        'price' => 'required|numeric',
        'category_id' => 'numeric|exists:categories',
    ]);

    // $data = request()->only('name', 'price', 'category_id');

    return Product::create($data);
}

Nếu 1 bạn muốn lấy dữ liệu của 1 trường không cần validate thì sao, đây là câu trả lời

$data = $this->validate(request(), [
    'name' => 'required',
    'price' => 'required|numeric',
    'notRequiredField' => '',
]);

10. throw_if và throw_unless

Laravel 5.5 sẽ có 2 phương thức helpers mới là throw_if và throw_unless, cả hai được thiết kế để "ném" exceptions dễ dàng hơn.

throw_if

Như tên gọi, nếu tham số đầu tiên true thì exception được "ném" ra

function throw_if($boolean, $exception, $message = '')
{
    if ($boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

throw_unless

Ngược lại với throw_if là throw_unless, nếu tham số điều tiên false thì "ném" ra exception

function throw_unless($boolean, $exception, $message)
{
    if (! $boolean) {
        throw (is_string($exception) ? new $exception($message) : $exception);
    }
}

Cũng chờ đón những tin tức mới nhất về Laravel nhé Phần tiếp: https://viblo.asia/p/laravel-55-se-co-gi-moi-phan-3-Ljy5Vb4y5ra


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí