07/09/2018, 17:47

Laravel 5.5 định nghĩa multiple resource

Kể từ phiên bản Laravel 5.5 đã bổ sung thêm một tính năng mới đó là định nghĩa multiple resource nhưng chắc ít bạn biết đến nè. Trước đây với việc định nghĩa nhiều resource routes bạn sẽ phải làm thế này Route::resource('books', 'BooksController'); Route::resource('genres', ...

Kể từ phiên bản Laravel 5.5 đã bổ sung thêm một tính năng mới đó là định nghĩa multiple resource nhưng chắc ít bạn biết đến nè.

Trước đây với việc định nghĩa nhiều resource routes bạn sẽ phải làm thế này

Route::resource('books', 'BooksController');
Route::resource('genres', 'GenresController');
Route::resource('authors', 'AuthorsController');

Thì giờ đây bạn chỉ việc nhóm chúng lại với nhau để dễ quản lý như dưới đây

Route::resources([
    'books' => 'BookController',
    'genres' => 'GenreController',
    'authors' => 'AuthorController',
]);

Với việc bổ sung thêm function resources() trong file vendorlaravelframeworksrcIlluminateRoutingRouter.php. Kèm theo đó là thêm tùy chọn chọn cho mỗi resource route trong phiên bản Laravel 5.7 này.

/**
 * Register an array of resource controllers.
 *
 * @param  array  $resources
 * @param  array  $options
 * @return void
 */
public function resources(array $resources, array $options = [])
{
    foreach ($resources as $name => $controller) {
        $this->resource($name, $controller, $options);
    }
}

Ví dụ kèm thêm options cho multiple resource

Route::resources([
    'books' => 'BookController',
    'genres' => 'GenreController',
    'authors' => 'AuthorController',
], [
    'only' => [],
    'except' => [],
    'name' => '
]);
0