在没有为其定义路由的情况下调用控制器方法
Invoking a controller method without having a route defined for it
我有几条路线,由于难以设置权限等原因不想添加另一条路线。我有一个控制器方法,它不会在任何路线上调用。有什么办法可以在我的 blade 模板中做到这一点?
我的控制器方法如下:
public static function editROA(){
//do stuff
}
在我的 blade 模板中,我想引用这个:
<a type='button' class='btn-warning' href="{{action('HomeController::editROA')}}">Edit</a>
然而,这会抛出一个错误,并表示没有名为 editROA 的方法。这个问题有解决办法吗?
由于您的路由不能超过 5 条,我建议您只使用一条通配符路由。所以你 运行 通配符上的 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>
我有几条路线,由于难以设置权限等原因不想添加另一条路线。我有一个控制器方法,它不会在任何路线上调用。有什么办法可以在我的 blade 模板中做到这一点?
我的控制器方法如下:
public static function editROA(){
//do stuff
}
在我的 blade 模板中,我想引用这个:
<a type='button' class='btn-warning' href="{{action('HomeController::editROA')}}">Edit</a>
然而,这会抛出一个错误,并表示没有名为 editROA 的方法。这个问题有解决办法吗?
由于您的路由不能超过 5 条,我建议您只使用一条通配符路由。所以你 运行 通配符上的 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>