Reputation: 1
it appears that when I created a new route, I receive the 404 error when trying to access the url, which is funny,. because all of my other routes are working just fine.
<?php
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
*/
$ads_controller = 'App\Http\Controllers\AdsController@';
$favorites_controller = 'App\Http\Controllers\FavoritesController@';
Route::get('/', $ads_controller.'index')->name('index');
Route::get('/ads/favorites', $favorites_controller.'index');
Route::get('/ads/create', $ads_controller.'create')->name('ads.create');
Route::post('/', $ads_controller.'store')->name('ads.store');
Route::get('/ads/{id}', $ads_controller.'show')->where('id', '[0-9]+');;
Route::get('/ads/{id}/edit', $ads_controller.'edit')->where('id', '[0-9]+');;
Route::put('/ads/{id}', $ads_controller.'update')->where('id', '[0-9]+');;
Route::delete('/ads/{id}', $ads_controller.'destroy')->where('id', '[0-9]+');;
Route::get('/ajax/popupimgs', $ads_controller.'get_images');
Auth::routes([
'register' => true,
]);
The one that is NOT working when I am visiting http://127.0.0.1:8000/ads/favorites is:
$favorites_controller = 'App\Http\Controllers\FavoritesController@';
Route::get('/ads/favorites', $favorites_controller.'index');
The controller looks like so:
<?php
namespace App\Http\Controllers;
use App\Models\Favorites;
use Barryvdh\Debugbar\Facade as DebugBar;
use Illuminate\Http\Request;
class FavoritesController extends Controller
{
// favorites page
public function index()
{
return view('ads.favorites');
}
}
Upvotes: 0
Views: 281
Reputation: 2196
The routes order MATTERS. Move your first route
Route::get('/', $ads_controller.'index')->name('index');
after the route
Route::get('/ads/favorites', $favorites_controller.'index');
What's happening here is that your first route is catching all GET requests at first.
Try with this
<?php
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
*/
$ads_controller = 'App\Http\Controllers\AdsController@';
$favorites_controller = 'App\Http\Controllers\FavoritesController@';
Route::get('/ads/favorites', $favorites_controller.'index');
Route::get('/ads/create', $ads_controller.'create')->name('ads.create');
Route::post('/', $ads_controller.'store')->name('ads.store');
Route::get('/ads/{id}', $ads_controller.'show')->where('id', '[0-9]+');;
Route::get('/ads/{id}/edit', $ads_controller.'edit')->where('id', '[0-9]+');;
Route::put('/ads/{id}', $ads_controller.'update')->where('id', '[0-9]+');;
Route::delete('/ads/{id}', $ads_controller.'destroy')->where('id', '[0-9]+');;
Route::get('/ajax/popupimgs', $ads_controller.'get_images');
Route::get('/', $ads_controller.'index')->name('index');
Auth::routes([
'register' => true,
]);
Upvotes: 0
Reputation: 11
Try running this command for rebuild the route cache
php artisan route:cache
https://laravel.com/docs/8.x/routing#route-caching
Upvotes: 0
Reputation: 86
For laravel 8 You might wanna do
Route::get('ads/favorites', [App\Http\Controllers\FavoritesController::class, 'index']);
https://laravel.com/docs/8.x/routing#view-routes
Upvotes: 0