Routes stopped working after updating Laravel. All - laravel

I know that the route system in Laravel 5 and later is different, but I was not ready for that. Upgraded to Laravel 7 and all routes stopped working for me.
The problem is in my views, in my project the route looks like this:
href="{{route('profile', ['id' => Auth::user()->nickname])}}"
And an error is returned to me that I did not pass an argument, although I did pass an argument.
Everything starts working if I fix it like this:
href="{{route('profile', Auth::user()->nickname)}}"
How do I fix this problem? It is very difficult to rewrite all the routes by hand, since there are thousands of them and most of the routes are of the form/{param1}/{param2}/...

In Laravel 7 it should also work with the key. I think something else is the problem, did u follow the Laravel upgrade guides?

Related

i cant run php artisan make:controller FallbackController

It gives me this error
ArgumentCountError
Too few arguments to function Illuminate\Routing\Router::fallback(), 0 passed in C:\xampp\htdocs\gmvcc\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 338 and exactly 1 expected
im using laravel 9.
I suggest a combination of suggested places to check, based on the provided error response you pasted above:
First, check your web.php or api.php in routes folder and verify if you have unexpected additional parameters. For example, Route::post('/foo/{hello}/bar/{world}', [FallbackController::class, 'testFunction']); and we see that you'll next have to declared $hello and $world shortly.
Next, does your function looks like this? (following the example from #1) Such as public function testFunction($hello, $world, Request $request).
Third, based on the HTTP method used, and for the route defined using FallbackController, were you able to simplify it to test your HTTP method with the route again? For this, I still assume it is a route in api.php correct?
Lastly, if any of above fails to help, I recommend implementing a simple route to test with (GET or POST) first. This will help you trace back what you missed.
Using Docker (and a fresh Laravel 9) to help fill in other clues, like incorrect php or composer version and more - using a template like this might help, https://github.com/k90mirzaei/laravel9-docker.
Please note, I am answering based on the provided error first. Hope my checklist above helps.

Laravel 5.5 cant find the page

recently i'm facing strange issue with my app which wasn't exist at least until yesterday!
If I try to open certain urls such as myapp.dev/blog or myapp.dev/categories etc. I get error of
Sorry, the page you are looking for could not be found.
but if I change my url to something like myapp.dev/t/blog it will load the page!
any idea?
Update
Route::get('/categories', 'frontend\FrontendController#totalcategories')->name('allcategories')->where('slug', '[\w\d\-\_]+');
try to move your at end of file or start of file in web.php. In my case sometime it's behave if while your url getting conflict with each other.
in my case my was like routes this
Route::get('{status}/category','TempController#index');
Route::get('category/t','TempController#store');
Simply I just moved myfirst line at end of file. and worked fine.
This happend because Laravel treat first Segment of URL as argument.

Laravel's pretty var_dump(), dd(), not working anymore

For some reason laravel's dd() function decided to stop functioning. I have no idea how this happened. I tried composer update already but I'm not sure what else can be going on. The debug key is set to true in the config.
Where should I look to solve this problem? I'm using Laravel 4.2.16
NOTE:
dd() now simply functions as var_dump(), it doesn't prettify it anymore
Solved it. I loaded my vagrant machine with the wrong config and was running hhvm instead of regular php-fpm. Hence xdebug, which handles the pretty dd(), was not being loaded. I reloaded my box with the correct settings (without hhvm and hack) and everything started working again
Is dd the only Laravel helper function that doesn't work? If not then check the contents of vendor/composer/autoload_files.php. The laravel support helpers are loaded here. If the other helper functions are fine you can check the contents of laravel/framework/src/Illuminate/Support/helpers.php to see what's going on - this is where the function is created.

Composer failing when I use Route::controller() in my routes.php

I'm working on migrating an existing Laravel 3 application over to Laravel 4.1, and routes are kicking my butt right now. Here is the problem I'm having- in the old application we made frequent use of Route::controller() in the routes file. When I bring those entries over to the new application they seem to work, but they cause composer to get nasty.
For example I have this route:
Route::controller('templates', 'AdminTemplatesController');
Which is working as a route. But when I run composer update I get this error:
{"error":{"type":"ReflectionException","message":"Class AdminTemplatesController does not exist","file":"\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/ControllerInspector.php","line":28}}
I've tried stripping down and using Artisan to create an entirely new controller- same test, same fail.
Any ideas what I'm doing wrong?
Looks like you have to do it in steps:
1) Disable all of your routes
2) Execute composer update and make the process pass, you don't need your routes to do that
3) Reenable the controller route and fix the issue Laravel is having by not finding it, which could be:
Controllers folder not being loaded in composer.json
Namespace not being loaded in composer.json
In all of those cases, you have to be sure that you have your controllers in any of the files of the folder:
vendor/composer
For example, if you have the controllers folder in the autoload->classmap of composer.json, the file will be:
vendor/composer/autoload_classmap.php
Remember that every time you change composer.json, you have to
composer dumpautoload
So it recreates those files.
EDIT:
About your comment, I had similar problem once when my file was printed in command line, was happening because I had:
<?
instead of
<?php
This makes difference for Laravel.
In Laravel 4 you use "Route::resource()". So your example would be Route::resource('templates', 'AdminTemplatesController');
http://laravel.com/docs/controllers#resource-controllers

Laravel caching old controllers MAMP

I have a Laravel application that refuses to acknowledge controller changes even if the controller doesn't exist anymore!
Using MAMP PRO 5.5.3 and Laravel 4.1
with
/Applications/MAMP/bin/php/php5.5.3/bin/php
I have followed these instructions
Stop caching for PHP 5.5.3 in MAMP
I have deleted the view storage in Laravel.
There was mention of adding - opcache_reset(); in my bootstrap/autoload.php
http://laravel.io/forum/02-06-2014-laravel-and-view-caching-in-development-cant-see-changes-right-away
But not sure how and where you do you do that, I tried but just got an error
Call to undefined function opcache_reset()
The caching still continues!
Despite the controller having been deleted 2 hours ago (to prove controller not being called), it is still showing the page with an imaginary controller.
It's driving me insane.
Any help really appreciated.
Further to this the route file is refusing to accept UserController
Route::get('register', 'UserController#getRegister');
Giving this error
.....controllers/UserControllerb.php): failed to open stream: No such file or directory
UserControllerb.php doesn't exist and was not asked for ?! but the route is wrongly looking for it
When I try this
Route::get('register', 'UserControllerb#getRegister');
Rightly give this error
Class UserControllerb does not exist
So the route has been cached (a previous back-up removed days ago)
I have tried to use composer which decides it doesn't want to work and no-one seems to know the solution for either problem.
Laravel composer signal "11" error symfony osx
Huge kudos to anyone who can solve this.

Resources