我认为这是一个相对常见的事情,但我无法在任何地方找到示例,而且关于find()
的Cookbook部分在这个主题上没有明确的说明。也许这只是一件非常简单的事情,蛋糕假设你可以自己做。
我想在这里做的就是在Cake中检索用户的名字(不是当前登录的用户......不同的用户名),因为他们的ID是通过视图中的数组传递给我的。
这是我在控制器中得到的东西:
public function user_lookup($userID){
$this->User->flatten = false;
$this->User->recursive = 1;
$user = $this->User->find('first', array('conditions' => $userID));
//what now?
}
此时,我甚至不知道我是否在正确的轨道上...我认为这将返回一个包含用户数据的数组,但我该如何处理这些结果呢?我怎么知道阵列会是什么样子?我只是return($cakeArray['first'].' '.$cakeArray['last'])
吗?我不知道......
帮助?
答案 0 :(得分:2)
您需要使用set
获取返回的数据,并将其作为视图中的变量进行访问。 set
是您将数据从控制器发送到视图的主要方式。
public function user_lookup($userID){
$this->User->flatten = false;
$this->User->recursive = 1;
// added - minor improvement
if(!$this->User->exists($userID)) {
$this->redirect(array('action'=>'some_place'));
// the requested user doesn't exist; redirect or throw a 404 etc.
}
// we use $this->set() to store the data returned.
// It will be accessible in your view in a variable called `user`
// (or what ever you pass as the first parameter)
$this->set('user', $this->User->find('first', array('conditions' => $userID)));
}
// user_lookup.ctp - output the `user`
<?php echo $user['User']['username']; // eg ?>
<?php debug($user); // see what's acutally been returned ?>
更多manual(这是基本的蛋糕,所以可能值得读好)