Header Image

Laravel 5. Explicit route binding

Загружено/обновлено 24 Июня 2016

Для того, что бы включить explicit route binding в Laravel 5 необходимо использовать App\Providers\RouteServiceProvider.php и конкретно метод boot().

Вот пример с данного сайта:

$router->bind('posts', function($value) {
        return Post::findOrFail($value);
    });

    $router->bind('topics', function($value) {
        return Topic::findOrFail($value);
    });

    $router->bind('topic_slug', function($value) {
        $topic = Topic::where('slug', $value)->first();

        if ( ! $topic) {
            abort(404);
        }

        return $topic;
    });

    $router->bind('post_slug', function($value) {
        $post = Post::where('slug', $value)->with('topics')->first();

        if ( ! $post) {
            abort(404);
        }

        return $post;
    });

    parent::boot($router);

Обратите внимание:

parent::boot() ставится в конец