Php 在Yii中获取更新中的多个记录
我正在开发这个网站,要求我在一个视图中组合两个模型,它们之间有一对多的关系。模型名为Home和Image,表示Home有许多图像,但Image只有一个家 我已设法将视图组合在一起,但我遇到的问题是获取所有图像。例如,我有6个图像,我想显示它们,或者如果我有5个图像,我想显示它们 主控制器更新方法 My_form.php将它们连接在一起Php 在Yii中获取更新中的多个记录,php,yii,Php,Yii,我正在开发这个网站,要求我在一个视图中组合两个模型,它们之间有一对多的关系。模型名为Home和Image,表示Home有许多图像,但Image只有一个家 我已设法将视图组合在一起,但我遇到的问题是获取所有图像。例如,我有6个图像,我想显示它们,或者如果我有5个图像,我想显示它们 主控制器更新方法 My_form.php将它们连接在一起 <div class="form"> <?php $form=$this->beginWidget('CActiveForm',
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'home-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($home); ?>
<div class="row">
<?php echo $form->labelEx($image,'imageUrl'); ?>
<?php echo $form->textField($image,'imageUrl',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($image,'imageUrl'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($home,'recentEvents'); ?>
<?php echo $form->textField($home,'recentEvents',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($home,'recentEvents'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($home,'introduction'); ?>
<?php echo $form->textArea($home,'introduction',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($home,'introduction'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($home->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
更新我在模型中有findbyattributes而不是findallbyttributes,所以现在它返回一个数组。现在,如何在视图中处理该数组?好的,我通过发布这篇文章找到了它,也许可以帮助需要它的人。我认为我做了以下工作
<?php
foreach($image as $image){
?>
<div class="row">
<?php echo $form->labelEx($image,'imageUrl'); ?>
<?php echo $form->textField($image,'imageUrl',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($image,'imageUrl'); ?>
</div>
<?php
}
?>
如果您正确地设置了模型关系,您还应该能够使用$home->images,或者以任何方式调用关系。这个关系应该类似于“images”=>arrayself::有很多“Image”、“homeId”,应该在home中定义。因此,在视图中,您还可以使用“$home->images as$image”,或者在控制器中使用$images=$home->images定义图像。并不是说你做这件事的方式不对,只是想把它扔出去。
<?php
foreach($image as $image){
?>
<div class="row">
<?php echo $form->labelEx($image,'imageUrl'); ?>
<?php echo $form->textField($image,'imageUrl',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($image,'imageUrl'); ?>
</div>
<?php
}
?>