У меня есть две модели:
class Post extends AppModel {
var $name = 'Post';
var $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id'
)
);
}
и
class User extends AppModel {
var $name = 'User';
var $hasMany = 'Post';
}
Теперь у меня проблема с запросом в PostsController
. У меня есть add()
функция и представление add.ctp, которое в основном является формой. Теперь я хотел бы показать некоторую информацию о пользователе в этой форме.
class PostsController extends AppController {
var $name = 'Posts';
var $helper = array('Html', 'Form');
var $uses = array('User');
public function index() {
$this->set('posts', $this->Post->find('all'));
}
function add() {
$user_id = 1;
$this->set('user', $this->User->findById($user_id));
if ($this->request->is('post')) {
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to add your post.');
}
}
}
}
Но теперь страница add-view показывает, что фактически запущены два запроса. Так что, если я print_r($user)
в add-view, я получаю массив с двумя массивами. Один для поста с user_id = 1 и один для реального пользователя с id = 1. Но я бы хотел получить только идентификатор пользователя = 1.