Php 调用控制器方法而不为其定义路由

Php 调用控制器方法而不为其定义路由,php,laravel,laravel-5,blade,Php,Laravel,Laravel 5,Blade,我有几个路由,由于设置权限等方面的困难,我不想再添加另一个路由。我有一个控制器方法,它不会在任何路由上调用。有什么方法可以在我的刀片模板中实现这一点吗 我的控制器方法如下: public static function editROA(){ //do stuff } 在我的刀片模板中,我想提及以下内容: <a type='button' class='btn-warning' href="{{action('HomeController::editROA')}}">Edit<

我有几个路由,由于设置权限等方面的困难,我不想再添加另一个路由。我有一个控制器方法,它不会在任何路由上调用。有什么方法可以在我的刀片模板中实现这一点吗

我的控制器方法如下:

public static function editROA(){
//do stuff
}
在我的刀片模板中,我想提及以下内容:

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


但是,这会抛出一个错误,并表示没有名为editROA的方法。这个问题有什么解决办法吗?

因为你不能有超过五条路线,我建议你只使用一条通配符路线。因此,在通配符上运行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>


你为什么不想要路线?@PandhiBhaumik我只能使用五条路线,分配规则。否则我会这样做。action()帮助程序正在使用路由列表查找控制器操作。因为您没有为该操作创建路由,所以它不会找到它。你也不能在没有路由的情况下创建指向控制器方法的URL,这就是路由。@Muhammad,我告诉你,没有路由是不可能的,你只能使用资源控制器来做你想做的事情,只有5条路由。是的,你必须创建路由,但一条路由可以处理很多事情,比如添加、编辑、删除、显示等等