-
Notifications
You must be signed in to change notification settings - Fork 11k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[5.4] Route not defined (consistently configure the name of the router) #19020
Comments
Where do you call Also
Looks to me something is wrong with your code. |
Closing for lack of activity. |
I have a similar problem when creating routes in tests. The order of <?php
namespace Tests;
use Illuminate\Support\Facades\Route;
use Tests\TestCase;
class RouteNameTest extends TestCase {
public function testRouteName()
{
// The following works :
// Route::name('test.test')
// ->get('/test', function() {
// return 'Hello world!';
// });
// But this does not work :
Route::get('/test', function() {
return 'Hello world!';
})->name('test.test');
$uri = route('test.test');
$response = $this->get($uri);
$response->assertSee('Hello world!');
}
} |
Laravel Framework 5.4.28 Result of the above test:
|
Unfortunately, there is such a piercing, but does not reach, describing it more de-atal ((( Route::get('..', '...')->name('test_1');
route('test_1'); That, the error InvalidArgumentException in UrlGenerator.php takes off Route::name('test_1')->get('..', '...'); That there is no mistake |
I am seeing the same as @kozlikov.
The commented lines result in the route not defined error. If name is called first then it works as it should. The error also only occurs when the route() helper function is called in the blade template. Not when navigating to the route itself.
|
Same here (Laravel 5.5). Defined as: Route::any('/alta', 'Garage@signup')->name('web.garage.signup');
Route::any('/location/city/{_id?}', 'Location@city')->name('web.location.city'); FIRST ROUTE Work on Ubuntu + PHP 7.1 SECOND ROUTE Work on Ubuntu + PHP 7.1 Same code, different environments. |
Updated routes definition as: Route::name('web.garage.signup')->any('/alta', 'Garage@signup');
Route::name('web.location.city')->any('/location/city/{_id?}', 'Location@city'); All routes works on all environments. UPDATED: not working on all enviroments. |
Solved deleting |
@eusonlito Unfortunately, cleaning the cache and manually deleting the cache of the routers does not help. @themsaid Maybe all this should open the topic? |
don't use a {{ route('/') }} command on views use {{ url('/') }} |
En Web: En php artisan route:list En create.blade.php: Sale: No he logrado corregirlo |
Today, after using |
Update
it should be
the different are i placed 2 get methods with same route. Change one to POST and it works |
@crazyfree if you are using same $this->any('my-account', 'Controller@function')->name('my-account'); |
So I encountered this in relation to testing a package (using orchestra/testbench). I found that if I used I.e. the following fails in a test: Auth::routes();
route('login'); // throws exception as login is not defined Encountered when updating to Laravel 5.7 because that adds an authentication middleware that has a call to Having dug into this, the difference between the test scenario and a real application is that the real application would define its routes via its The solution in setting up the test scenario is therefore to do the following: Auth::routes();
app('router')->getRoutes()->refreshNameLookups();
app('router')->getRoutes()->refreshActionLookups();
route('login'); // this now works Not ideal but sorts out testing the package. The fundamental cause is if you use the Posting this because this took a while to find the solution for, so hopefully I can save some other people a lot of time! /cc @themsaid |
Worked for Me Like a Charm....Thanks Guys |
this one helped me) |
Just a follow up to @lindyhopchris. We had some routes added dynamically with same problems: $this->router->group(['domain' => $domain], $routesFile); Looks like laravel has some kind of names cache and if your routes are defined with new school fluent interface you have to update it with: $this->router->getRoutes()->refreshNameLookups(); See
/**
* Refresh the name look-up table.
*
* This is done in case any names are fluently defined or if routes are overwritten.
*
* @return void
*/
public function refreshNameLookups() {} |
Description:
Steps To Reproduce:
If requried custom routes.php from ServicesProvider and
If you initialize the name of the router at the last moment, this router is not listed (router=>nameList)
If you change the initialization of the name places the router, then everything is okay.
The text was updated successfully, but these errors were encountered: