2

I have below configuration in my Laravel /routes/web.php:

Route::group(['prefix' => 'admin'], function(){
    Route::get('/', function() {
        return view('admin.login');
    });
});

If you observe, I have mentioned view('admin.login') this calls /resources/views/admin/login.blade.php. Which holds good as of now.

But for this Route group, I will have all my views inside /resources/views/admin. Thus, I do not want to use admin before every view-name.

Is there any possible parameter at Route::group level by which I can define namespace of my views, so that the Laravel searches my views in the particular directory inside /resources/views/?

Veer Shrivastav
  • 5,434
  • 11
  • 53
  • 83

2 Answers2

1

You can use

View::addNamespace('admin', '/path/to/admin/views'); or View::addLocation('/path/to/your/admin/views');

to specify your admin view folder in your route file.

with the first method you can use return view('admin::view.name'); and with the second method you can use view name directly like return view('view.name');

1

I faced the same problem and created a helper function it worked ... added a helpers directory under app directory app\Helpers\functions.php

function adminView($file){
   return view('foo.' . $file);
}

in composer.json file registered this file

"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    },
    "files": ["app/Helpers/functions.php"]
},

just run composer dump-autoload and you can use this helper function