我的控制器中有以下代码:
function index()
{
$posts = $this->set('posts', $this->Portfolio->find('all'));
if (isset($this->params['requested']))
{
return $posts;
}
else
{
$this->set('posts', $this->Portfolio->find('all'));
}
}
我想要做的是a)显示索引的投资组合项目列表,例如/portfolio/
和b)在元素内显示投资组合项目的列表,以便用户可以从站点的我的侧边栏中访问投资组合项目。
这是我的侧边栏元素:
<?php $posts = $this->requestAction('portfolio/index'); ?>
<ul>
<?php foreach ($posts as $post): ?>
<li><?php echo $this->Html->link($post['Portfolio']['title'], array('action' => 'view', $post['Portfolio']['id']));?></li>
<?php endforeach; ?>
</ul>
然后在布局中这样称呼它:
<?php $this->element('portfolio-nav', array('posts' => $posts) ); ?>
但是,它给出以下错误:
Notice (8): Undefined variable: posts [APP/controllers/portfolio_controller.php, line 16]
并且不会在边栏中显示项目列表。
我很确定我在控制器中编写的内容是垃圾,因此如果有人可以帮助我使其正常工作,那将是很棒的。
谢谢
参考方案
我昨天回答了同样的问题。为什么控制器动作如此复杂?我想你只需要
function index() {
$this->set('posts', $this->Portfolio->find('all'));
// Make sure the model Portfolio is accessible from here, i.e. place this
// action in PortfoliosController or load it using
// ClassRegistry::init('Portfolio')->find...
}
然后,在您的index.ctp视图中:
<?php echo $this->element('foobar', array('posts' => $posts)); ?>
如果您希望能够从站点的每个页面(侧边栏或其他内容)中请求此请求,则可以使用requestAction
或将$this->set...
放在AppController中。如果在元素中使用requestAction
,则不必在array('posts' => ...)
调用中传递$this->element
。
好的,很显然,您需要更多的指导。让我逐步解释一下。首先,我们需要在您的beforeFilter
上创建一个AppController
,以便可以从应用程序中的任何位置访问$posts
变量。
/app/app_controller.php
:
<?php
class AppController extends Controller {
function beforeFilter() {
parent::beforeFilter();
$this->set('posts', ClassRegistry::init('Portfolio')->find('all'));
}
}
接下来,我们在app/views/elements/foobar.ctp
中创建一个简单的元素:
<?php debug($items); ?>
最后,我们从视图中的某个位置调用元素:
<?php echo $this->element('foobar', array('items' => $posts)); ?>
我们为$ posts(在AppController中已定义)变量分配了items
键,因为我们的元素需要一个$items
变量。
我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…
php:是否有充分的理由引用所有数组键/索引? - php我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…
PHP数组可以这样做吗? - php可以说;我有一个$ friends数组,其中有2,000个不同的friendID号+我有一个带有10,000 bulletinID号的$ bulletins数组,该$ bulletins数组还将具有另一个值,该ID的用户ID是发布公告条目的用户现在可以获取所有具有与FriendsID数组中的userID匹配的userID的bulletinID号吗?甚至有可能…
phpWord中的粗体,空格和缩进文本 - php我有一些要加粗的文本,与前几段和后几段分开并缩进。我不能让所有三个属性一起工作。这适用于粗体和空格:$section = $phpWord->addSection(); $section->addText( 'Re: Your Application for Post of Security Guard', array(…
哪个更好的做法?从Jquery响应获取HTML - php这只是一个问题,以了解人们如何以及如何做到这一点,但是假设用户向列表中添加了一些内容,完成后,它将运行下面的ajax并更新.user-stream-list$.ajax({ url: "user-stream-list.php", success: function(data){ $(".user-stream-list…