Im folgenden Lynda Tutorial auf CakePHP 3 Grundlagen und ich habe auf Problem begegnet. Die Aufgabe bestand darin, dass diese Benutzereinheit beim Anzeigen eines Benutzers auch Informationen zu seinem zuletzt hinzugefügten Lesezeichen enthalten muss.Benutzer ist nicht verbunden mit LastBookmarks
Also, was der Kerl auf Tutorial tat, war:
auf Lesezeichen Tabelle habe ich hinzugefügt eine Beziehung hasOne
class BookmarksTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);
$this->table('bookmarks');
$this->displayField('title');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Users', [
'foreignKey' => 'user_id'
]);
$this->belongsToMany('Tags', [
'foreignKey' => 'bookmark_id',
'targetForeignKey' => 'tag_id',
'joinTable' => 'bookmarks_tags'
]);
// i have added this line
$this->hasOne('LastBookmarks', [
'className' => 'Bookmarks',
'foreignKey' => 'user_id'
]);
}
Und mein Userscontroller i LastBookmarks in enthalten Array
public function view($id = null)
{
$user = $this->Users->get($id, [
'contain' => ['Bookmarks', 'LastBookmarks']
]);
$this->set('user', $user);
$this->set('_serialize', ['user']);
}
hinzugefügt haben Und der Fehler, den ich bekomme, ist Users is not associated with LastBookmarks
Dies ist ein Druck-Bildschirm des Fehlers, den ich bekomme, wenn ich auf einen BenutzerBlick drücken
Wie kann ich mein Problem lösen? Wenn Sie zusätzliche Informationen benötigen, lassen Sie es mich bitte wissen. Danke
ja du hast Recht. Man denke, es gibt keine LastBookmarks-Tabelle ... In Tutorial gibt es Lesezeichen und Benutzer Tabelle. Aber irgendwie macht der Kerl letzte Informationen über den Benutzer über $ this-> hasOne ('LastBookmark'). Jede Art und Weise, wie diese Assoziation in der Benutzertabelle hinzugefügt wurde, funktionierte für mich. Thx –
ehhh jetzt bekomme ich es: D der Code, den ich hinzugefügt habe, sollte nicht auf BookmarksTable, sondern auf UsersTable: D Thx Mann! –