Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Yii中获取更新中的多个记录_Php_Yii - Fatal编程技术网

Php 在Yii中获取更新中的多个记录

Php 在Yii中获取更新中的多个记录,php,yii,Php,Yii,我正在开发这个网站,要求我在一个视图中组合两个模型,它们之间有一对多的关系。模型名为Home和Image,表示Home有许多图像,但Image只有一个家 我已设法将视图组合在一起,但我遇到的问题是获取所有图像。例如,我有6个图像,我想显示它们,或者如果我有5个图像,我想显示它们 主控制器更新方法 My_form.php将它们连接在一起 <div class="form"> <?php $form=$this->beginWidget('CActiveForm',

我正在开发这个网站,要求我在一个视图中组合两个模型,它们之间有一对多的关系。模型名为Home和Image,表示Home有许多图像,但Image只有一个家

我已设法将视图组合在一起,但我遇到的问题是获取所有图像。例如,我有6个图像,我想显示它们,或者如果我有5个图像,我想显示它们

主控制器更新方法

My_form.php将它们连接在一起

<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
    }
    ?>