I have the controller@method name in a variable, and I want to get url of this controller, so I use action()
Helper in Laravel, but I get this error:
InvalidArgumentException in UrlGenerator.php line 605:
Action App\Http\Controllers\Dashboard\Users\UserController@index not defined.
This is my route/web.php
:
Route::group(['middleware' => ['auth','nav'], 'prefix' => 'dashboard', 'namespace' => 'dashboard'], function () {
Route::get('/', 'DashboardController@index')->name('dashboard');
Route::group(['prefix' => 'users', 'namespace' => 'users'], function () {
Route::get('/list', 'UserController@index');
});
});
and in variable I store this string :
Dashboard\Users\UserController@index
What is the problem ?
UPDATE :
I use action()
Helper in middleware:
<?php
namespace App\Http\Middleware;
use App\Models\User\Nav;
use Closure;
use Illuminate\Support\Facades\View;
class NavMenu
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
...
$sample = $this->createNavigation();
...
return $next($request);
}
public function createNavigation()
{
...
$url = action('Dashboard\Users\UserController@index');
...
return $url;
}
}