laravel-5 - 如何从 Laravel 中的路由传递请求对象?

标签 laravel-5 request

以下是我在 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/

相关文章:

javascript - GET请求后如何从html响应中获取数据

Laravel 4.2 检查 whereIn 子句中的数组是否为空

php - 当您没有该功能的指定模型时,将业务逻辑放在哪里?拉维尔

php - 如何从 Laravel 中的 Ajax 调用中检索数据?

php - 连接表并显示结果 [Laravel 5]

java - 根据点击的链接设置请求属性

php - ORDER BY "the date"Laravel 5 SQL 查询

java - Android http请求POST

ios - 如何处理必须快速完成的网络请求

ios - 如何使用异步请求下载文件?