【发布时间】:2015-07-29 22:54:58
【问题描述】:
我正在使用控制器和视图(无框架),并且在需要来自父控制器的视图时遇到问题,这会导致变量未定义。
有一个带有视图功能的主控制器,它确实需要视图。
class Controller {
public function view($view, $data =[]){
require_once './app/views/' . $view . '.php';
}
然后有一个用户控制器扩展了控制器,它有一个方法“mypage”,它在变量中加载内容并需要一个视图。 (登录后可以通过URL访问Mypage)。
class User extends Controller{
public function mypage(){
$userdetails = $this->getuserdetails();
$userstatus = $this->getstatus();
$messages = new Messages();
$showmessages = $messages->showMessages();
$friends = new Friends();
$outrequests = $friends->outRequests();
$increquests = $friends->incRequests();
$friendsstatuses = $friends->friendsstatuses();
$getfriends = $friends->friends();
$this->view('mypage');
}
}
$this->view('mypage'); 行在需要使用变量的 mypage 视图 (mypage.php) 的父 Controller 中启动视图方法。问题是 mypage.php 中的所有变量都未定义。
如果我与
交换那条线require_once "./app/views/mypage.php";
,然后就可以了。那么为什么我在向控制器请求时会丢失变量,我做错了什么?
【问题讨论】:
-
您需要在用户类页面中使用控制器类吗?
-
在用户类中,我有一个自动加载器: spl_autoload_register(function($class) { require_once "./app/controllers/" . ($class) . ".php"; });跨度>
标签: php model-view-controller undefined controllers