Wir haben zwei Modelle:Paginate mit Eloquent aber ohne Instanziierung Modelle
- SimpleModel (id, Land, Code)
- ComplexRelatedModel (id, Name, Adresse)
SimpleModel hat viele ComplexRelatedModel , dann
class Product extends Model
{
protected $fillable = [
'name'
];
/* hasOne */
public function complexRelatedChild()
{
return $this->hasOne(self::class, 'parent_id', 'id');
}
}
Wenn wir das tun
$simples = SimpleModel
->with('complexRelatedChild')
->simplePaginate(100000 /* a lot! */);
Und wir brauchen nur tun
foreach ($simples as $simple) {
echo $simple->complexRelatedChild->name;
}
Jede ComplexChild hat hydratated und fertig. Das kostet in meinem Fall viel Speicher. Und wir brauchen nur ein Feld ohne irgendeine Funktion oder Funktion von Model.
Es ist möglich, ein Datenfeld von verwandten Objekt oder mit eloquent verwenden dies ist nicht möglich?
vielen Dank für Ihre Antwort. Große Lösung, Sie verstehen mich großartig. (Entschuldigung für mein schlechtes Englisch). Wenn Sie denken, dass dies die beste Lösung ist, großartig. Ich habe dich noch besser, ich höre dich: P Ich brauche insgesamt Ressourcen, weil der Client alle Daten und sincronize mit IndexDB einmal pro Tag. Wenn ich paginiere, muss der Client eine Seite pro Seite erhalten. – pablorsk
@pablorsk: Ich habe meine Antwort mit einer anderen Option aktualisiert, die Sie ausprobieren könnten. Viel Glück! –
dein Update löst mein Problem! Die schlechte Seite ist wieder die SQL-Anfragen. Aber Speicher ist nur 30%. – pablorsk