Php MVC模式:如果模型需要调用其视图';s函数?
请帮助我修复基于MVC模式的代码。我是MVC的新手。 在我的项目中,我必须构建一个视图和模型树作为父子层次结构。 但我坚持了一个观点(在代码示例中给出),模型需要it视图来调用带有模型数据的视图函数。作为一个初学者理论,我可能很难实现。如果可能的话,还请提出其他更好的方法 请给出一些代码解决方案。请。 下面是一个PHP代码示例:Php MVC模式:如果模型需要调用其视图';s函数?,php,model-view-controller,Php,Model View Controller,请帮助我修复基于MVC模式的代码。我是MVC的新手。 在我的项目中,我必须构建一个视图和模型树作为父子层次结构。 但我坚持了一个观点(在代码示例中给出),模型需要it视图来调用带有模型数据的视图函数。作为一个初学者理论,我可能很难实现。如果可能的话,还请提出其他更好的方法 请给出一些代码解决方案。请。 下面是一个PHP代码示例: class model{ $data = array(); $model childModelArray[]; // keeps root model
class model{
$data = array();
$model childModelArray[]; // keeps root model's child list
}
class view{
$controller;
function ShowChild()
{
if (count($this->controller->model->childModelArray) > 0)
{
echo '<div class="SubChildBox">';
foreach ($this->controller->model->childModelArray as $nextChildModel){
//PROBLEM: model object nextChildModel need to call view object!!! ShowAsChild() !!!
// Help on this please
$this->ShowAsChild();
}
echo '</div>';
}
}
}
类模型{
$data=array();
$model childModelArray[];//保留根模型的子列表
}
类视图{
$controller;
函数ShowChild()
{
如果(计数($this->controller->model->childModelArray)>0)
{
回声';
foreach($this->controller->model->childModelArray作为$nextChildModel){
//问题:模型对象nextChildModel需要调用视图对象!!!ShowAsChild()!!!
//请帮忙
$this->ShowAsChild();
}
回声';
}
}
}
首先,视图不需要是类。它们大多是html。您可以通过使用默认值的形式参数来解决问题。如果形式参数不存在,则它是控制器的参数
class model{
$data = array();
$model childModelArray[]; // keeps root model's child list
}
class view{
$controller;
function ShowChild($childModelArray = false)
{
$childModelArray = $childModelArray === false ? $this->controller->model->childModelArray : $childModelArray;
if ($childModelArray && count($childModelArray) > 0)
{
echo '<div class="SubChildBox">';
foreach ($childModelArray as $nextChildModel){
//PROBLEM: model object nextChildModel need to call view object!!! ShowAsChild() !!!
// Help on this please
$this->ShowAsChild($nextChildModel);
}
echo '</div>';
}
}
}
类模型{
$data=array();
$model childModelArray[];//保留根模型的子列表
}
类视图{
$controller;
函数ShowChild($childModelArray=false)
{
$childModelArray=$childModelArray==false?$this->controller->model->childModelArray:$childModelArray;
如果($childModelArray&&count($childModelArray)>0)
{
回声';
foreach($childModelArray作为$nextChildModel){
//问题:模型对象nextChildModel需要调用视图对象!!!ShowAsChild()!!!
//请帮忙
$this->ShowAsChild($nextChildModel);
}
回声';
}
}
}