hydratisieren So habe ich zwei Objekte.Wie man eine benutzerdefinierte Eigenschaft in DataMapper PHP-Konstruktor auf Basis der FK-Beziehung
class Product extends DataMapper
{
var $has_many = array('productrating');
public $averageRating = null;
function __construct($id = NULL)
{
parent::__construct($id);
echo "my id: " . $this->id;
}
}
und
class ProductRating extends DataMapper
{
var $table = "product_ratings";
var $has_one = array('product');
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Was würde ich schließlich erreichen möchte, ist bevölkern die Product->$averageRating
Eigenschaft mit, Sie ahnen es, die durchschnittliche Bewertung auf der Grundlage der FK Beziehung mit ProductRatings.
Mein erster Gedanke war, auf die Beziehung zuzugreifen, die Mathematik basierend auf der Anzahl der ProductRating-Zeilen auszuführen und die Eigenschaft im Konstruktor zu füllen. Aber ich habe Probleme, sogar auf das Objekt im Konstruktor zuzugreifen. Das führt mich zu der Annahme, dass ich wahrscheinlich in die falsche Richtung gehe. Wie kann dies mit DataMapper erreicht werden?
Ich weiß, die Mathematik könnte in den View-Seiten getan werden, aber ich würde das gerne im Modell behalten, wenn möglich.