New Laravel Routes not working

18,164

Solution 1

Try placing

Route::get('/courses/statistics', 'CourseController@statistics');

below this particular line of route code

Route::get('/courses/create', 'CourseController@create');

The general rule of laravel routing is to place specific routes before wildcard routes that are related. Link here

Solution 2

I had same issue, Did all those magic with configs and nothing.. Solution: run: php artisan route:clear

Share:
18,164
Jelly Bean
Author by

Jelly Bean

Grinding sharpening the sword

Updated on June 04, 2022

Comments

  • Jelly Bean
    Jelly Bean almost 2 years

    I have a problem, new routes in laravel are not working, url shows the correct route but almost as if it does not get to my routes web file just returns page not found every time.

    I have tried: using named route, moving function to different controller, clearing route cache, clearing app cache, dump-auto load, made sure that AllowOverride is set to All,

    Web.php:

        <?php
    
    /*
    |--------------------------------------------------------------------------
    | Web Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register web routes for your application. These
    | routes are loaded by the RouteServiceProvider within a group which
    | contains the "web" middleware group. Now create something great!
    |
    */
    
    Route::get('/', function () {
        return view('welcome');
    });
    
    Auth::routes();
    
    Route::get('/home', 'HomeController@index')->name('home');
    
    /*
    |--------------------------------------------------------------------------
    | Courses
    |--------------------------------------------------------------------------
    */
    Route::get('/courses', 'CourseController@index');
    Route::get('/courses/create', 'CourseController@create');
    Route::get('/courses/{course}', 'CourseController@show');
    Route::get('/courses/{course}/edit', 'CourseController@edit');
    Route::post('/courses', 'CourseController@store');
    Route::patch('/courses/{course}', 'CourseController@update');
    Route::delete('/courses/{course}', 'CourseController@destroy')->name('course-delete');
    
    Route::get('/courses/statistics', 'CourseController@statistics');
    
    /*
    |--------------------------------------------------------------------------
    | First Aid
    |--------------------------------------------------------------------------
    */
    Route::get('/section/{section}', 'SectionController@show');
    
    
    /*
    |--------------------------------------------------------------------------
    | First Aid
    |--------------------------------------------------------------------------
    */
    Route::get('/progress', 'UserProgressController@index');
    Route::get('/progress/create', 'UserProgressController@create');
    Route::get('/progress/{section}', 'UserProgressController@show');
    Route::get('/progress/formativeresults', 'UserProgressController@formativeresults');
    //Route::get('/progress/coursestatistics', 'UserProgressController@coursestatistics');
    //Route::get('/progress/{progress}/edit', 'UserProgressController@edit');
    Route::post('/progress', 'UserProgressController@store');
    //Route::patch('/progress/{progress}', 'UserProgressController@update');
    //Route::delete('/progress/{progress}', 'UserProgressController@destroy')->name('progress-delete');
    

    Controller:

    public function statistics()
        {
            dd('Test');
           return view('coursestatistics');
        }
    

    View file name: coursestatistics.blade.php file structure views/coursestatistics

    Link to page:

    <a class="navbar-brand" href="/courses/statistics">
       {{ __('Statistics') }}
    </a>
    

    Can anyone tell me what might be causing route not to work?

  • Jelly Bean
    Jelly Bean about 6 years
    That worked for me thanks!, might have found another issue with Route::get('/progress/{section}', 'UserProgressController@show'); possibly because the wildcard is not named the progress as well causing issues with any routes below this one.
  • emotality
    emotality about 6 years
    Ahh nice catch! :D
  • kofoworola
    kofoworola about 6 years
    @JellyBean Were you able to fix the progress route too?
  • Jelly Bean
    Jelly Bean about 6 years
    yes just name the wild card the same as the route all is well thank you
  • Jelly Bean
    Jelly Bean almost 5 years
    Update on my comment about the wild card, its not that it should be named the same as the route, it could be named anything as long as the wild card used is also used in the controller e.g. public function store(Model $wildcard){ ... }