Ich sah Ihren anderen Beitrag CakePHP Elements not updating table, so dass ich irgendwie eine Vorstellung von Ihrer Situation habe. Es scheint, dass Sie Kommentare mit Ihrem Post-Modell darstellen.
Sie möchten Daten von Ihrem Post-Modell, in Ihrem UploadsController, korrigieren?
Wenn Ihre Kommentartabelle comments
heißt, müssen Sie sicherstellen, dass sie mit Ihrem Post-Modell verknüpft ist. Cake ordnet Modelle und Datenbanktabellen automatisch zu, wenn sie den Namenskonventionen von Cake folgen. Aber wenn sie in der Tat unterschiedlich sind, können Sie eine benutzerdefinierte Datenbanktabelle für Ihren Beitrag Modell angeben:
<?php
class Post extends AppModel {
var $useTable = "comments" /*Or whatever you named your comments table*/
...
}
?>
Sie müssen auch die Modell Verbände gewährleisten zwischen Post und Hochladen einrichten:
Post belongsTo Upload
Upload hasMany Post
Ich bemerkte, Sie haben:
Gibt es einen Grund, warum es HABTM ist? HABTM impliziert, dass derselbe Beitrag zu vielen verschiedenen Uploads gehören kann. hasMany impliziert, dass ein Beitrag nur zu einem einzelnen Upload gehören kann.
Schließlich nun, dass die Modellverbände eingerichtet sind, können Sie ähnliche Modelle in einem Controller zugreifen:
<?php
class UploadsController extends AppController {
...
function watch ($id = null) {
$this->Upload->id = $id;
$this->set('uploads', $this->Upload->read());
/* To get related comments (Posts) */
$related_comments = $this->Upload->Post->find('all', array(
'conditions' => array(
'Upload.id' => $id /* This condition makes it so only associated comments are found */
)
));
$this->set('comments', $related_comments);
}
...
}
?>
Dank für die Beantwortung, verwende ich die HABTM denn wenn ich hasMany verwende ich einen Fehler Datenbankfehler erhalten Fehler: SQLSTATE [23000]: Integritätseinschränkungsverletzung: 1052 Spalte 'uploadid' in Where-Klausel ist mehrdeutig Mit dem $ related_comments erhalte ich den folgenden Fehler; Fataler Fehler: Aufruf einer Memberfunktion find() auf einem Nicht-Objekt in /Applications/XAMPP/xamppfiles/htdocs/evolvids/app/Controller/UploadsController.php in Zeile 57 Außerdem habe ich die Kommentartabelle verschrottet und Modell und nannte es einfach Posts, irgendwelche Ideen? – 001221
ok Ich habe den Datenbankfehler jedoch erstellt (und ich erinnere mich, dass dies der ursprüngliche Grund war, warum ich HABTM verwendet habe), die von der Datenbank stammenden Informationen werden dreimal auf der Seite dupliziert, wenn die hasMany-Anweisung verwendet wird? Ich verstehe nicht, warum das passiert, ich habe die Grenze auf 1 gesetzt, und das macht auch keinen Unterschied, irgendwelche Ideen, warum das passiert? – 001221
aber keine Sorgen, denn wenn ich es zu $ this-> Post anstelle von $ dies-> Upload-> Post es funktioniert perfekt! und ich behielt mit dem ursprünglichen HABTM wegen der doppelten Einträge, die es auf der Seite macht. Danke für deine Hilfe :) – 001221