MVC入门框架访问注册路由出现TypeError及ArgumentCountError报错
第一个报错解决方法
错误原因是类名拼写错误:你导入类时把Request错拼成Requset,方法参数的类型声明也用了拼写错误的类名。因为你当前控制器的命名空间是app\controllers,PHP找不到拼写错误的类时,会默认找当前命名空间下的Requset类,和路由实际传入的app\core\Request类类型不匹配,所以报错。
修复操作:
- 修正AuthController顶部的导入语句:将
use app\core\Requset;改为use app\core\Request; - 修正register方法的参数类型声明:将
public function register(Requset $request)改为public function register(Request $request)
第二个报错解决方法
错误原因是你定义的render方法要求必须传入2个参数,分别是视图名$view和传给视图的参数$params,但你调用render的时候只传了视图名一个参数,参数数量不匹配导致报错。
有两种修复方案,选任意一种即可:
- 方案一(更推荐,适配性更强):给render方法的
$params参数设置默认空数组,没有参数要传递的时候可以不用传第二个参数:
public function render($view, $params = []) { return Application::$app->router->renderView($view, $params); }
- 方案二:调用render方法时,哪怕没有参数要传给视图,也补传一个空数组作为第二个参数:
// login方法内调用修改为 return $this->render('login', []); // register方法内调用修改为 return $this->render('register', []);
内容的提问来源于stack exchange,提问作者Eymen
相关产品推荐
相关产品推荐

