View Yii:将login.php视图呈现到另一个视图中';s Div标签

View Yii:将login.php视图呈现到另一个视图中';s Div标签,view,yii,render,View,Yii,Render,所以我在写一页来学习Yii。就是这样: 我试图做的是,当我点击login时,一个div正在向下滑动,login.php表单应该在这里。 问题是如何将其呈现到main.php的div标记中 我尝试了$this->renderPartial('//site/login',array('model'=>$model)),但我得到了未定义的变量:model error。 我通过理解yii视图渲染流程来阅读,但似乎我没有理解要点 有什么建议吗?错误在于您没有在控制器中定义名为$model的变量,并且在视图

所以我在写一页来学习Yii。就是这样:

我试图做的是,当我点击login时,一个div正在向下滑动,login.php表单应该在这里。 问题是如何将其呈现到main.php的div标记中

我尝试了
$this->renderPartial('//site/login',array('model'=>$model)),但我得到了未定义的变量:model error。
我通过理解yii视图渲染流程来阅读,但似乎我没有理解要点


有什么建议吗?

错误在于您没有在控制器中定义名为$model的变量,并且在视图登录中需要该变量

当你呼叫时,在你的控制器中

$this->render('yourView', array());
您必须在第二个数组中添加要传递到登录视图的数据

$this->render('yourView', array('model'=>$model));

如果您需要更具体的答案,请毫不犹豫地发布您的代码

错误在于您没有在控制器中定义名为$model的变量,并且在视图登录中需要该变量

当你呼叫时,在你的控制器中

$this->render('yourView', array());
您必须在第二个数组中添加要传递到登录视图的数据

$this->render('yourView', array('model'=>$model));
如果您需要更具体的答案,请毫不犹豫地发布您的代码

使用以下命令:

$this->renderPartial('site/login',array('model'=>new LoginForm));
在登录视图中,您应该这样定义
action

$form=$this->beginWidget('CActiveForm', array(
    // ...
    'action' => $this->createUrl( 'site/login' ),
    // ...
使用以下命令:

$this->renderPartial('site/login',array('model'=>new LoginForm));
在登录视图中,您应该这样定义
action

$form=$this->beginWidget('CActiveForm', array(
    // ...
    'action' => $this->createUrl( 'site/login' ),
    // ...

嗯,没有太多的东西可以发布,因为我真的不知道我要做什么。在我的控制器中,我知道有一个$model=newloginform。这就是创建模型。所以通常当我打开登录按钮时,在主内容区域中加载登录。但是我希望它被加载到main.php的div中,正如你在我发布的链接中看到的那样。嗯,没有太多东西可以发布,因为我真的不知道我要做什么。在我的控制器中,我知道有一个$model=newloginform。这就是创建模型。所以通常当我打开登录按钮时,在主内容区域中加载登录。但是我希望它被加载到main.php的div中,正如你在我发布的链接中看到的那样。我现在需要格式化我的login.php表单以适应这个框,因为它现在看起来是这样的:你能解释一下为什么它现在可以工作吗。这是行动的原因吗?因为我已经做了数组('model'=>new LoginForm)。@Toma-您以前使用$model作为未定义的变量。Boris的代码之所以有效,是因为他明确确保通过renderPartial()传递给视图的“模型”已定义。我知道不要误解我的意思,在Boris发布答案之前,我尝试了‘model’=>newLoginform,但没有动作=>。。。。因此,可能存在问题的症结所在。假设您仅使用了
renderPartial
部分,但在视图中未设置
action
。这个
renderPartial
是从站点/索引视图调用的。在本例中,登录视图中的表单操作将指向站点/索引,在该操作中,您没有对
LoginForm
进行验证或任何类型的处理。这就是将操作设置为站点/登录有效的原因。因为表单会将用户的数据提交到站点/登录操作,所以
LoginForm
的验证在哪里等等。e、 g.如果您没有为
CActiveForm
Yii定义操作,我将设置当前控制器的操作。它正在工作。我现在需要格式化我的login.php表单以适应这个框,因为它现在看起来是这样的:你能解释一下为什么它现在可以工作吗。这是行动的原因吗?因为我已经做了数组('model'=>new LoginForm)。@Toma-您以前使用$model作为未定义的变量。Boris的代码之所以有效,是因为他明确确保通过renderPartial()传递给视图的“模型”已定义。我知道不要误解我的意思,在Boris发布答案之前,我尝试了‘model’=>newLoginform,但没有动作=>。。。。因此,可能存在问题的症结所在。假设您仅使用了
renderPartial
部分,但在视图中未设置
action
。这个
renderPartial
是从站点/索引视图调用的。在本例中,登录视图中的表单操作将指向站点/索引,在该操作中,您没有对
LoginForm
进行验证或任何类型的处理。这就是将操作设置为站点/登录有效的原因。因为表单会将用户的数据提交到站点/登录操作,所以
LoginForm
的验证在哪里等等。e、 g.如果您没有为
CActiveForm
Yii定义操作,我将设置当前控制器的操作。