Laravel:5.4
它有效,但我想知道是否有其他的解决方案。
我有这样的路线
Route::get('{any}-a{id}', function($any, $id) {
return ArticleController::show($id);
})->where(['id' => '[0-9]+', 'any' => '.*']);
但这需要public **static** function show($id)
是否有任何其他解决方案可以从路线调用非静态功能,或者只是跳过 $ any 参数,例如->compact('id')
(在路线中),或者:
Route::get('#something-I-don't-know#-a{id}'), function(**$id**) { ... })
?
我想保留非静态 show 函数,因为它来自另一个Route的Route:resource:route('articles.show',$article->id)
。我不想添加$ any参数。
感谢您的时间和答案:D
答案 0 :(得分:1)
您可以随时执行此操作,而不是调用静态方法:
app()->make('App\Http\Controllers\ArticleController')->show($id);
完整代码如下:
Route::get('{any}-a{id}', function($any, $id) {
return app()->make('App\Http\Controllers\ArticleController')->show($id);
})->where(['id' => '[0-9]+', 'any' => '.*']);