在没有为其定义路由的情况下调用控制器方法

时间:2017-09-06 15:34:45

标签: php laravel laravel-5 blade

我有几个路由,并且由于设置权限等困难而不想添加另一个路由。我有一个控制器方法,不会在任何路由上调用。有什么方法可以在我的刀片模板中执行此操作吗?

我的控制器方法如下:

public static function editROA(){
//do stuff
}

在我的刀片模板中,我想提一下:

<a type='button' class='btn-warning' href="{{action('HomeController::editROA')}}">Edit</a>

但是,这会引发错误,并说没有名为editROA的方法。有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:1)

由于你的路线不能超过五条,我建议你只使用一条野外路线。所以你在外卡上运行if else来调用适当的方法。

Route::get('{uri?}',function($uri){
    if($uri == "/edit")
    {
        return app()->call('App\Http\Controllers\HomeController@editROA');
    }else if($uri == "something else"){
        return app()->call('App\Http\Controllers\SomeController@someMethod');
    }
    // add statements for other routes
});

查看

<a type='button' class='btn-warning' href="{{url('edit')}}">Edit</a>