猜测是那个自动解析路由的官方说明有问题,目前找不到具体原因,顺带再问下,多层嵌套的控制器只能通过路由自动解析实现,那么怎么为不同的路由设定中间件呢 这个官方没有说明,是否跟正常控制器的那种路由一样的设置方法
beforeAction 这里测试没有问题。
路由自动解析最终是通过代码Route::any($uri, $cb);来添加路由的,代码是可根据自己需要编辑的,在调用Route::any($uri, $cb);的地方根据自己需要调用Route::any($uri, $cb)->middleware();方法即可
Route::any($uri, $cb);
Route::any($uri, $cb)->middleware();
大佬beforeAction里对属性的定义 无法在其他方法里使用,其他方法还是拿到的还是定义时的默认值
/**
@param Request $request */ public function beforeAction(Request $request) :void { //parent::beforeAction($request); $this->model = 222222222; $this->modelSceneValidate = false; var_dump('beforeAction'); }
beforeAction里把model定义成了22222..,然后index 里打印的model还是默认值,这个经测试,但应用多应用都正常,但是controller多册目录的时候就不正常了
在 route.php 中路由自动解析里的 $class = new ReflectionClass($class_name); 的后面加一行 $class_name = $class->name;
$class_name = $class->name;
谢谢大佬
beforeAction 这里测试没有问题。
路由自动解析最终是通过代码
Route::any($uri, $cb);
来添加路由的,代码是可根据自己需要编辑的,在调用Route::any($uri, $cb);
的地方根据自己需要调用Route::any($uri, $cb)->middleware();
方法即可大佬beforeAction里对属性的定义 无法在其他方法里使用,其他方法还是拿到的还是定义时的默认值
/**
@param Request $request
*/
public function beforeAction(Request $request) :void
{
//parent::beforeAction($request);
$this->model = 222222222;
$this->modelSceneValidate = false;
var_dump('beforeAction');
}
/**
*/
public function index(Request $request) :void
{
var_dump($this->model);
}
beforeAction里把model定义成了22222..,然后index 里打印的model还是默认值,这个经测试,但应用多应用都正常,但是controller多册目录的时候就不正常了
在 route.php 中路由自动解析里的 $class = new ReflectionClass($class_name); 的后面加一行
$class_name = $class->name;
谢谢大佬