Ich habe zwei Modelle:CakePHP - Nur eine Abfrage von einem externen Modell
class Post extends AppModel {
var $name = 'Post';
var $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id'
)
);
}
und
class User extends AppModel {
var $name = 'User';
var $hasMany = 'Post';
}
Jetzt bin ich ein Problem mit einer Abfrage in den PostsController
habe. Ich habe eine add()
Funktion und die Ansicht add.ctp, die im Grunde eine Form ist. Jetzt möchte ich einige Benutzerinformationen in diesem Formular zeigen.
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.');
}
}
}
}
Aber jetzt die Add-View-Seite zeigt, dass tatsächlich zwei Abfragen ausgelöst wurden. Also wenn ich print_r($user)
innerhalb der Add-View bekomme ich ein Array mit zwei Arrays. Ein für einen Beitrag mit user_id = 1 und ein für den tatsächlichen Benutzer mit id = 1. Aber ich würde nur die Benutzer-ID = 1
Ich kann die var '$ user' nicht finden –
Woher willst du den User mit ID 1 bekommen? In 'PostsController :: add()'? –
Tut mir leid, '$ user' ist aus Sicht, ich bin richtig? –