首页 > 解决方案 > PHP MVC:我们需要将模型对象传递给视图对象吗?

问题描述

我正在用 php 学习 MVC。我看到了以下示例 PHP MVC 示例

$model = new Model();
$controller = new Controller($model);
$view = new View($controller, $model); // $model already inside $controller!

如果你注意到代码,$controller 对象已经包含 $model。所以 $view 可以通过 $controller 访问数据 $model。那么为什么我们需要再次将 $model 对象与 $controller 一起传递给 $view?请帮忙。

标签: phpmodel-view-controller

解决方案


代码示例:

class UserModel
{
   public function getUserId()
   {
      return 100500;
   }

   public function getUserAddress()
   {
      return /*here is some data*/
   }
}

class Controller 
{
    private $userId;

    public function __construct(UserModel $model)
    {
        $this->userId = $model->getUserId();
    }
}

$controller = new Controller(UserModel);

如您所见,我们在控制器内没有模型 UserModel(只有 id)。但是,如果您需要函数 getUserAddress() 怎么办?你必须把物体放在里面


推荐阅读