Ich wollte nur wissen, ob es möglich ist, einen definierten Accessor im Laravel Repository zu laden. Ich verwende derzeit dieses l5-repository Paket und Laravel 5.4.Laravel Repository eagle load vordefinierter Accessor
In meinem UserInfo.php
Modell, ich habe diese Funktion
public function getFullNameAttribute()
{
return ucfirst($this->first_name . " ". $this->last_name);
}
Dann ich versuche eifrig Last, die Accessor in meinem Controller so.
$user_infos = $this->repository->with('full_name')->all();
// or $user_infos = $this->repository->with('getFullNameAttribute')->all();
return response()->json([ 'data' => $user_infos ]);
Ich weiß, dass es nicht funktionieren wird. Ich suche nur nach einer ähnlichen Möglichkeit, meinen Accessor full_name
in meiner Sammlung hinzuzufügen. Also muss ich nicht in meinem Frontend verketten. So würde mein erwartete Ergebnis sein
{
id : 1,
first_name : "Sample fname",
last_name : "Sample lname",
.....
.....
full_name : "Sample fname Sample lname",
}
Die Logik des eifrigen Ladens ist anders mit Ihrer Situation. Es wird für Relationen verwendet und in diesem Beispiel macht es keinen Sinn es zu verwenden. – MisaGH
Auch der Accessor wird in Ihrer Sammlung verfügbar sein und Sie können ihn verwenden. Wenn Sie jedoch eine andere Sammlung erstellen möchten, können Sie diese Schleife durchlaufen und manuell einfügen. – MisaGH
Das Problem ist, ich kann nur den 'full_name' bekommen, wenn ich diese Sammlung auf meinem Controller loopen. Ich kann in meinem Frontend (JS) nicht darauf zugreifen. Es gibt ein Update in meiner Frage, die ich 'return response() hinzugefügt habe -> json (['data' => $ user_infos]);' –