2013-10-11 53 views
1

我在警予一個新手,我試圖編輯_form.php這個自動警予爲我們創造。該_form.php這個已使用 <?php $this->renderPartial('_form', array('model'=>$model)); ?>
現在在_form.php這個用下面的代碼如何檢查在yii中調用哪個動作?

<div class="row"> 
     <?php echo $form->labelEx($model,'comment'); ?> 
     <?php echo $form->textArea($model,'comment',array('rows'=>6, 'cols'=>50)); ?> 
     <?php echo $form->error($model,'comment'); ?> 
    </div> 

我要顯示該行的create.php視圖文件部分呈現只有當該文件是由create.php,而不是呈現由update.php文件。我可以使用IF條件執行此操作,但我不知道如何檢查哪個文件已呈現此表單。 所以我的問題是

how can i check which action has been called or which file is rendering the _form.php??? 

回答

5

很簡單:

<?php if ($this->action->id == "update") ?> 
+0

haha​​hahahha ....我是從很長的時間做同樣的,它不能正常工作,但我複製這從你的回答它開始工作: -p ....順便謝謝很多朋友:) –

4

你不是真的想夫婦與它的主人的名字的局部視圖。如果模型是新記錄,您可能需要的僅僅是顯示評論區域。你可以是這樣做的:

<?php if($model->isNewRecord) : ?> 
<div class="row"> 
    <?php echo $form->labelEx($model,'comment'); ?> 
    <?php echo $form->textArea($model,'comment',array('rows'=>6, 'cols'=>50)); ?> 
    <?php echo $form->error($model,'comment'); ?> 
</div> 
<?php endif; ?> 

請注意,這不會阻止有人從起草,其中包括了正在更新模型的comment值的HTTP請求;它只會隱藏控制權。如果您想在服務器上執行此操作,則需要根據型號scenariocomment上放置適當的驗證規則。

+0

謝謝。它也工作:) –

1

你的部分觀點不應該真正關心那裏它被從渲染。如果您的部分視圖需要附加信息(作出決定),請將其作爲參數傳遞。

$this->renderPartial('_form', array('model'=>$model, 'myparam'=>'blah')); 

而在你的局部視圖使用

$myparam... 
相關問題