在Yii中将表单从一个模型提交到另一个视图
如何从一个控制器发布到另一个视图 我有一个在Yii中将表单从一个模型提交到另一个视图,yii,Yii,如何从一个控制器发布到另一个视图 我有一个评论模型和一个产品模型。Review表单通过小部件显示在Product视图中,但是如何提交表单本身?现在,它什么都没做。我可以通过查看/创建提交,但不能通过产品视图提交 或者我应该在小部件中发布帖子吗?如果您在组件/ReviewWidget.php上放置下面这样的代码,您就可以实现它。我想您已经在默认位置上查看了Review as model及其相应的控制器和视图文件 <?php class ReviewWidget extends CWidge
评论
模型和一个产品
模型。Review
表单通过小部件显示在Product
视图中,但是如何提交表单本身?现在,它什么都没做。我可以通过查看/创建提交,但不能通过产品
视图提交
或者我应该在小部件中发布帖子吗?如果您在组件/ReviewWidget.php上放置下面这样的代码,您就可以实现它。我想您已经在默认位置上查看了Review as model及其相应的控制器和视图文件
<?php
class ReviewWidget extends CWidget{
public function init() {
return parent::init();
}
public function run(){
$model = new Review;
if (isset($_POST['Review'])) {
$model->attributes = $_POST['Review'];
$model->save();
}
$this->renderFile(Yii::getPathOfAlias('application.views.review'). '/_form.php',array(
'model' => $model,
));
}
}
它将只处理项目创建。您必须自己创建更新项目的代码 在控制器操作中,必须使用函数renderPartial
$this->renderPartial('//views/reviw/_form',array('data' => $data ) );
此函数的第一个参数用于确定要使用的视图:
- 模块内的绝对视图:视图名称以单斜杠“/”开头。在这种情况下,将在
当前活动模块的视图路径。如果没有活动模块,
将在应用程序的视图路径下搜索视图 - 应用程序内的绝对视图:视图名称以双斜杠“/”开头。在这种情况下,将搜索视图
在应用程序的视图路径下。此语法已可用
从版本1.1.3开始 - 别名视图:视图名称包含点并引用路径别名。通过调用
YiiBase::getPathOfAlias()。请注意,别名视图不能设置主题
因为它们可以引用位于任意位置的视图文件 - 相对视图:否则。将在当前活动控制器的视图路径下搜索相对视图
也可以在视图中使用此功能。但是重用视图最方便的方法是创建小部件。如果您能告诉我们更多的信息,这会有所帮助。您是如何准确地呈现该表单的?通过哪个小部件?发布包含表单的视图,你的控制器发布与视图和控制器/操作相关的代码我意识到我是从小部件中的cactiveform开始的。但这很有效。谢谢
$this->renderPartial('//views/reviw/_form',array('data' => $data ) );