Hoy, quiero usar el paqueteLaravel Breadcrumbs con laravel 5.4 . Lo usé con laravel 5.3 sin ningún problema y todo funcionó bien.
Pero cuando ejecuto la aplicación me sale este error:
FatalErrorException in ServiceProvider.php line 34: Call to undefined method Illuminate\Foundation\Application::share() Busqué eso y encontré que A partir de laravel 5.4 se ha eliminado el recurso share . y debo usar el singleton en su lugar.
Pero cuando hice eso, cambia en ServiceProvider.php así:
public function register() { $this->app['breadcrumbs'] = $this->app->singleton(function($app) { $breadcrumbs = $this->app->make('DaveJamesMiller\Breadcrumbs\Manager'); $viewPath = __DIR__ . '/../views/'; $this->loadViewsFrom($viewPath, 'breadcrumbs'); $this->loadViewsFrom($viewPath, 'laravel-breadcrumbs'); // Backwards-compatibility with 2.x $breadcrumbs->setView($app['config']['breadcrumbs.view']); return $breadcrumbs; }); }Tengo otro error. como esto :
ErrorException in Container.php line 1057: Illegal offset type in unsetNo sé cuál es el problema. Alguien puede ayudarme ?
Actualizar :
Encontré la solución aquí .
El primer problema es que la instancia singleton espera que una clase se enlace como primer argumento, que en este caso es 'breadcrumbs' .
El segundo problema es que no necesita declarar explícitamente la clave de matriz para la instancia de singleton. Así es como debería verse:
$this->app->singleton('breadcrumbs', function($app) El siguiente problema es que el paquete que estás usando ha sido abandoned . El desarrollador ya no lo mantendrá.
El problema final es que estás usando una versión < 3.0.2 . Así que cambie la versión en su composer.json a 3.0.2 y luego instálela, entonces no debería necesitar modificar ningún archivo.