0
votes

Route de Laravel introuvable lorsque la route existe

Lorsque j'essaye d'accéder à mon site laravel, j'obtiens cette erreur dans la console.

+--------+----------------------------------------+--------------------------------------------------------------------------------------------+--------------------------------------------+------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Domain | Method                                 | URI                                                                                        | Name                                       | Action                                                                                         | Middleware                                                                                                                                                                        |
+--------+----------------------------------------+--------------------------------------------------------------------------------------------+--------------------------------------------+------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|        | GET|HEAD                               | .well-known/apple-developer-merchantid-domain-association                                  |                                            | App\Http\Controllers\Web\ApplePayDomainVerificationController                                  | web                                                                                                                                                                               |
|        | GET|HEAD                               | /                                                                                          | home                                       | App\Http\Controllers\Web\HomeController@index                                                  | web                                                                                                                                                                               |

Mais l'itinéraire du retour est clairement défini. Je l'ai même mis en haut de mon fichier d'itinéraire pour m'assurer que rien d'autre ne le remplaçait.

routes/web.php
<?php

// New Home Page for App
Route::get('/', 'Web\HomeController@index')->name('home');

...

avec php artisan route:list

Laravel development server started: <http://127.0.0.1:8000>
[Mon Nov 16 10:39:15 2020] PHP Fatal error:  Uncaught InvalidArgumentException: Route [home] not defined. in /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php:389
Stack trace:
#0 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(822): Illuminate\Routing\UrlGenerator->route('home', Array, true)
#1 /Users/threeaccents/code/src/gitlab.com/few/bodylove/storage/framework/views/e071ac62e490c49233841ae8b6b3906075bc0187.php(6): route('home')
#2 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/Users/threeacc...')
#3 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/Users/threeacc...', Array)
#4 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/View/View.php(142): Illuminate\Vi in /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php on line 389
[Mon Nov 16 10:39:15 2020] PHP Fatal error:  Uncaught InvalidArgumentException: Route [home] not defined. in /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php:389
Stack trace:
#0 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(822): Illuminate\Routing\UrlGenerator->route('home', Array, true)
#1 /Users/threeaccents/code/src/gitlab.com/few/bodylove/storage/framework/views/e071ac62e490c49233841ae8b6b3906075bc0187.php(6): route('home')
#2 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/Users/threeacc...')
#3 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/Users/threeacc...', Array)
#4 /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/View/View.php(142): Illuminate\Vi in /Users/threeaccents/code/src/gitlab.com/few/bodylove/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php on line 389

Mise à jour

J'ai effacé le cache de l'itinéraire, supprimé le dossier du fournisseur, réinstallé PHP mais rien ne semble résoudre le problème.

Je l'ai essayé sur mon ordinateur portable de travail (même configuration) et tout fonctionne. Cela semble être un problème avec ma station actuelle, mais je ne sais pas ce qui en serait la cause. J'utilise PHP 7.2 sur un mac os 10.14.4. Laravel 5.7

Je pensais aussi que c'était peut-être un problème système global, mais si je crée un nouveau projet laravel, tout fonctionne comme prévu, donc cela semble être un problème spécifique au projet.


4 commentaires

Et à propos de la structure des dossiers de votre contrôleur?


Est-ce que cela répond à votre question?404 Not Found, mais la route existe dans Laravel 5.4


Très intéressant .. Utilisez-vous opcache? Ou tout autre système de cache de niveau php? Et je vous rm -rf supprimer complètement rm -rf dossier de cache généré. Peut-être que c'est juste foiré et ne peut pas le remplacer.


Essayez d'utiliser url("/") au lieu de l'assistant d'itinéraire pour déterminer le comportement.


3 Réponses :


-2
votes

Une telle route ne fonctionne pas sauf si vous modifiez le RouteServiceProvider

Il existe une nouvelle version de laravel, assurez-vous de mettre à jour votre PHP ou XAMPP et essayez de mettre à jour le laravel global du compositeur et de créer un nouveau projet laravel.

Voir la documentation Laravel et ce post https://youtu.be/MfE1tnMG6fE


0 commentaires

-2
votes

Vous pouvez supprimer le nom ('home'), car l'erreur est Route [home] non définie

<?php
// New Home Page for App
Route::get('/', 'Web\HomeController@index');


0 commentaires

0
votes

C'était un problème avec ma configuration apache. Il semble que sur ma dernière mise à jour, Apache a été mis à jour et le fichier de configuration a un peu changé. Je devais changer

<Directory />
    AllowOverride all
    Require all granted
</Directory>

à

#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other 
# <Directory> blocks below.
#
<Directory />
    AllowOverride none
    Require all denied
</Directory>


0 commentaires