我有一个程序,在某一时刻将会显示一个图与媒体产品(图片或视频)我要知道,好歹,以包括另一种观点认为威胁的视频或威胁的图片,这取决于一个标志。我想要使用这些"小景"几个其他目的,因此,它应该被"喜欢"一个蛋糕的组件,用于再利用.

你们什么建议使用以在蛋糕公约(而不使用的原料 include('') 命令)

有帮助吗?

解决方案

看看这个 链接 更具体地说 元素-一部分,手册应告诉你一切你需要知道

其他提示

在感兴趣的具有信息在这里以防有人绊倒在此,重要的是要注意的解决方案取决于不同的版本。

为Cake1.1

$this->renderElement('display', array('flag' => 'value'));

在你看来,然后在 /app/views/elements/ 你可以做一个文件叫 display.thtml, ,哪里 $flag 会有价值的无论你通过它。

为Cake1.2

$this->element('display', array('flag' => 'value'));

在你看来,然后在 /app/views/elements/ 你可以做一个文件叫 display.ctp, ,哪里 $flag 会有价值的无论你通过它。


在这两个版本的元素将有机会获得所有数据的查看已经访问+任何价值,你通过它。此外,正如有人指出, requestAction() 也是一种选择,但它可以带来了沉重的代价在绩效,如果做不使用缓存,因为它已经通过的所有步骤的一个正常的行动。

在你的控制器(在本例中的员额控制器)。

function something() {
    return $this->Post->find('all');
}

在你的元件目录(app/views/件)建立一个文件称为员额。ctp。

在员额。ctp:

$posts = $this->requestAction('posts/something'); 
foreach($posts as $post): 
    echo $post['Post']['title']; 
endforeach; 

然后在你的观点:

<?php echo $this->element('posts'); ?>

这主要是采取从的书:建立可重复使用的元素与requestAction

我相信,使用requestAction是相当昂贵,所以你会想要看看高速缓存。

只是使用:

<?php include('/<other_view>.ctp'); ?>

中。ctp你的行动的结束。

例如,建立一个归档功能

function archived() {
  // do some stuff
  // you can even hook the index() function
  $myscope = array("archived = 1");
  $this->index($myscope);
  // coming back, so the archived view will be launched
  $this->set("is_archived", true); // e.g. use this in your index.ctp for customization
}

可能的调整指数的行动:

function index($scope = array()) {
  // ...
  $this->set(items, $this->paginate($scope));
}

你的档案。ctp将是:

<?php include('/index.ctp'); ?>

理想的再利用的代码控制的行动和意见。

为Cake2.x

新蛋糕2.x是abilty延长给定图。因此,虽然元素是很好有点位的可重复使用的代码,延伸视图可以重复使用整个景。

请参阅本手册的更多/更好的信息

http://book.cakephp.org/2.0/en/views.html#extending-views

元素的工作,如果你想让他们有机会获得同样的数据,该调查访问。

如果你想要你的嵌入式视为有权访问其自己的一套数据,可能要用的东西喜欢 requestAction().这可以让你嵌入一个全面的视图,否则将独立。

我想要使用这些"小意见", 几个其他目的,因此,它应该 被"喜欢"蛋糕件, 回收.

这样做是与"助手", 这里描述的.但我不确定这是真的,你想要什么。该"元素"建议似乎是正确的。它大量取决于什么你想要完成的任务。我的两个分...

在Cake3.x你可以简单的使用:

$this->render('view')

这将使该图从相同的目录中,父图。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top