【问题标题】:How to get controller view inside an element?如何在元素内获取控制器视图?
【发布时间】:2012-10-06 22:25:55
【问题描述】:

我创建了一个具有文本字段(与 Facebook 相同的状态栏)的元素,我在主页/显示视图中进行了扩展。

元素代码:

<?php 
echo $this->Html->css('notes'); 
echo $this->Html->script(array('jquery','jquery.elastic','notes'));
?>
<div class="notescontainer">
<div class="share">Share:</div>
<div class="notes">Notes</div>
<div class="loading"></div>
<div class="img_top"></div>
<div class="text_status">

<?php 
echo $this->form->create('Note', array('action' => 'notes'));
echo $this->form->input('notes',array('class' => 'notesbar', 'label'=>'', 'placeholder' => 'Write down you notes ...'));
?>
</div>
<div class="button_outside_border" id="share">
<div class="button_inside_border">

<?php 
echo $this->form->submit('Share',array('alt' => 'Add', 'class' => 'sharebutton'));
echo $this->form->end();
?>
</div>
</div>
<div class="clear"></div>
<div class="load_status_out"></div>
</div>

我希望当用户共享状态时它应该重新出现在显示/主页的同一页面上,为此我创建了一个控制器来检索用户输入的状态。

控制器:

<?php public function notes()
{
$this->set('allnotes', $this->Note->find('all'));
}?>

控制器视图:

<?php 

foreach($allnotes as $viewnotes):
{

    echo $viewnotes['Note']['notes']; 
    echo "<br>";
}
endforeach;
?>

现在我希望这个控制器视图显示在主页/显示视图上。有什么办法可以在那个元素中扩展它?我不想直接在我的主页/显示视图上添加它,因为它已经完全加载了。

【问题讨论】:

标签: cakephp


【解决方案1】:

您可以使用requestAction() 来完成此操作,但根据我的经验,如果您需要它,它是错误的并且是设计失败的标志。 或者,您可以将所有视图转换为可以以任意方式相互嵌入的元素。然后你可以在控制器中调用一些共享代码来填充所有需要的模型。

【讨论】:

  • 如何使控制器视图显示元素...似乎不可能,因为我添加了一个包含存储来自控制器数据的变量的循环。
猜你喜欢
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多