dimanche 3 septembre 2017

Dynamic Routing (Auto Create Route) on Laravel 5 - View not rendered on App::call()

Basically, I have an admin (CMS) for my app. I have included menu and submenu setup, which are eventually populated on my nav section.

Name: User
URL: setup/user
Icon: fa fa-user

The problem is, if I add new menu (like above), I have to setup another route on web.php, like:

Route::resource('setup/user','UserController');

Well, there will be lots of menu to be created and my web.php is somehow messed up with lots of routes.

I followed this article and it gave me an idea, I tweaked it and created my own.

http://ift.tt/2iTHYSD

Here's what I've done:

function wildcard($route, $controller, $verbs = ['get', 'post']) {

$stack      = Route::getGroupStack();
$namespace  = end($stack)['namespace'];
$controller = ucfirst(strtolower($route)).'Controller';


Route::match($verbs, rtrim($route, '/') . '/{method}', function($method, $params = null) use ($route, $namespace, $controller)
{

    $controller = $namespace . '\\' . $controller;

    $method = $controller . '@' . $method;
    $params
        ? App::call($method, explode('/', $params))
        : App::call($method);

});
}

wildcard('home',null);

My HomeController:

public function index()
{
    return view('pages.common.dashboard');
}

But it doesn't display the view on my index method, just blank page. But it did get the method because I can dump from the method.

Maybe there's a better way on dynamic routing. Thanks.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire