动态路由 不是实例的问题
我有个需求就是模块化组件化开发,所以有些东西是动态的;
那么我就应该要有个动态路由吧?
Route 路由文件里是这么写的;
Route::match(['get', 'post'], '/{controller}/{action}/{params?}', function ($controller, $action, $params=null) {
$namespace = 'App\Http\Controllers\Modules\\'.ucfirst($controller).'\\Front\\';
$className = $namespace . ucfirst($controller . 'Controller');
$tempObj = new $className();
return call_user_func(array($tempObj, $action), $params);
});
那么问题来了。当我访问了,方法竟然不能注入了;
比如
public function index(Request $request)
{
...
}
在方法注入,就会报错:
Argument 1 passed to App\Http\Controllers\Modules\Front\IndexController::index() must be an instance of Illuminate\Http\Request, null given, called in E:\www\TestWeb\routes\web.php on line 187
我觉得是我动态路由写法姿势不对导致的,可是也不知道咋办;
顺便问一下,你们如果有一个比较常用的查询,会不会吧查询方法写到指定的模型里去?
比如posts,我很多地方都用到文章数据,你们会不会把获取数据写到posts模型里面去,直接调?
还是你们会分离一个服务层来做?
推荐文章: