Illuminate\Routing\Router::substituteImplicitBindings PHP Method

substituteImplicitBindings() public method

Substitute the implicit Eloquent model bindings for the route.
public substituteImplicitBindings ( Illuminate\Routing\Route $route ) : void
$route Illuminate\Routing\Route
return void
    public function substituteImplicitBindings($route)
    {
        $parameters = $route->parameters();
        foreach ($route->signatureParameters(Model::class) as $parameter) {
            $class = $parameter->getClass();
            if (array_key_exists($parameter->name, $parameters) && !$route->getParameter($parameter->name) instanceof Model) {
                $method = $parameter->isDefaultValueAvailable() ? 'first' : 'firstOrFail';
                $model = $class->newInstance();
                $route->setParameter($parameter->name, $model->where($model->getRouteKeyName(), $parameters[$parameter->name])->{$method}());
            }
        }
    }

Usage Example

Example #1
0
 /**
  * Substitute the implicit Eloquent model bindings for the route.
  *
  * @param \Illuminate\Routing\Route $route
  *
  * @return void
  * @static
  */
 public static function substituteImplicitBindings($route)
 {
     \Illuminate\Routing\Router::substituteImplicitBindings($route);
 }