2016-12-16 4 views
0

Ich habe ein Problem mit Code mit Laravel. Ich definiere ein Attribut in einem Modell, um eine Liste zu erhalten. Es benötigt viel Zeit. Ich verwende dieses Modell in einem Controller. Folgen Sie den Code:laravels Modell bekommt Anfrage Informationen vom Controller

protected $appends=["consume_info"]; 
public function getConsumeInfoAttribute(){ 
    //query a lot of information from mysql 
} 

Ich frage mich, ob es ein Attribut in-Controller oder Modell ist eine Abfrage mit MySQL in Modell zu vermeiden.

Gibt es eine Einstellung, um Laravel mitzuteilen, wann dieses angehängte Attribut geladen werden soll oder nicht?

+1

Warum nicht einfach Funktionen für solche Zwecke verwenden statt anhängen? So etwas wie 'getConsumeInfo()' und wie $ MODELL-> getConsumeInfo() aufrufen, wann immer es nötig ist? – prateekkathal

+0

Sie haben Recht, aber ich bin wirklich neugierig darauf, und ich denke, es ist eine gute Idee, eine Flagge im Modell zu bekommen, um zu entscheiden, wann der Code funktioniert! –

Antwort

1

Warum nicht einfach die consume_info aus $ anhängigen Array entfernen. Sie erhalten die $model->consumer_info und das auch nur, wenn Sie dies benötigen.

+0

Sie haben recht, aber ich bin wirklich neugierig darauf, und ich denke, es ist eine gute Idee, eine Flagge im Modell zu bekommen, um zu entscheiden, wann der Code funktioniert! –

Verwandte Themen