0

我认为这将是一件相对常见的事情,但我在任何地方都找不到示例,而且食谱find()中关于该主题的部分也没有明确说明。也许这只是一些如此简单的事情,Cake 假设你可以自己做。

我在这里要做的就是根据视图中的数组传递给我的 ID 在 Cake 中检索用户的名称(不是当前登录的用户……不同的用户)。

这是我在控制器中的内容:

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'])?不知道……</p>

帮助?

4

1 回答 1

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 ?>

手册中的更多内容(这是基本的蛋糕材料,因此可能值得一读)

于 2012-06-12T09:47:48.717 回答