Laravel Wie füge ich eine benutzerdefinierte Funktion in einem Eloquent-Modell hinzu?

9

Ich habe ein Produktmodell

%Vor%

Ich möchte eine Funktion hinzufügen, die den niedrigsten Preis liefert, und im Controller kann ich den Wert mit Hilfe von

erhalten %Vor%

Ich habe dies im Produktmodell hinzugefügt:

%Vor%

aber ich habe einen Fehler bekommen, der sagt:

%Vor%

Und wenn ich Product::find(1)->lowest(); verwende, wird es funktionieren. Ist es möglich, Product::find(1)->lowest; zu verwenden?

Jede Hilfe wäre willkommen.

    
Harrison 08.06.2016, 02:55
quelle

3 Antworten

22

Wenn Sie versuchen, auf eine Funktion im Modell als Variable zuzugreifen, geht Laravel davon aus, dass Sie versuchen, ein zugehöriges Modell abzurufen. Sie nennen sie dynamische Eigenschaften. Was Sie stattdessen benötigen, ist ein benutzerdefiniertes Attribut.

Fügen Sie Ihrem Modell folgende Methode hinzu:

%Vor%

Jetzt sollten Sie in der Lage sein, darauf wie folgt zuzugreifen:

%Vor%     
Rahul M 08.06.2016, 03:13
quelle
8

Verwenden Sie wortgewandte Accessoren

%Vor%

Dann

%Vor%     
huuuk 08.06.2016 03:48
quelle
0

warum tust du das einfach nicht? Ich weiß, es ist nicht das, wonach du speziell gefragt hast, und manchmal ist es eine schlechte Übung. aber in deinem Fall denke ich, es ist gut.

%Vor%     
Achraf Khouadja 08.06.2016 03:25
quelle

Tags und Links