2017-04-03 19 views
0

Laravel:5.4Laravel:跳過從路線或呼叫控制器@表現出一定的PARAMS無添加「靜態」添加

它的工作原理,但我想知道是否有其他親的解決方案。

我有這樣

Route::get('{any}-a{id}', function($any, $id) { 
    return ArticleController::show($id); 
})->where(['id' => '[0-9]+', 'any' => '.*']); 

路線但這需要public **static** function show($id)

是否還有其他解決方案調用非靜態功能從路線,或者只是跳過$任何 PARAMS如->compact('id')(在Route中),或者: Route::get('#something-I-don't-know#-a{id}'), function(**$id**) { ... })

我想保留非靜態的顯示函數,因爲它來自Route:另一個Route的資源:route('articles.show',$article->id)。我不想添加$任何參數。

感謝您的時間和你的答案:d

+0

你可以在'scopeShow'這樣的定義方法中使用'scope'。 – Saman

+0

@Saman,但我已經有了'show'功能。我認爲'範圍'屬於查詢生成器,不返回視圖。 – Onfealive

+0

是的你對,我的壞 – Saman

回答

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' => '.*']);