以下是我在 route 直接调用我的 Controller 的路线。
如何通过Request $request
到我的 getBlog
功能.. 或者有什么办法可以直接得到$request
我的对象 getblog
Controller 的功能???
$artObj = App::make('App\Http\Controllers\Front\ArticleController');
return $artObj->getBlog($id);
route 的代码:
Route::get('/{slug}', function($slug) {
// Get Id and Type depending on url
$resultarray = App\Model\UrlAlias::getTypefromUrl($slug);
if(!empty($resultarray)) {
if($resultarray[0]['type'] == 'article') {
$id = $resultarray[0]['ref_id'] ;
$artObj = App::make('App\Http\Controllers\Front\ArticleController');
return $artObj->getBlog($id);
} else {
return Response::view("errors.404", $msg, 400);
}
} else {
return Response::view("errors.404", array(), 400);
}
});
最佳答案
你可以在 routes.php 文件的头部做:
use Illuminate\Http\Request;
然后在你的路线的开始:
Route::get('/{slug}', function($slug, Request $request) {
并且 $request 将可供您使用。但这是非常糟糕的做法。您应该做的是将整个逻辑移动到 Controller 中,如下所示:
Route::group(['namespace' => 'Front'], function(){
Route::get('/{slug}', 'ArticleController@methodName');
})
然后你可以在你的 Controller 类和 Controller 方法中使用 Request 类:
<?php namespace App\Http\Controllers\Front
use Illuminate\Http\Request;
class ArticleController
{ ...
public function methodName(Request $request){
...function logic...
}
....
}
关于laravel-5 - 如何从 Laravel 中的路由传递请求对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34082621/