gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:31:32 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com