Was ist der schnellste Weg um Gravatar URLs in Laravel zu implementieren? Ich habe ein obligatorisches E-Mail-Adressfeld, aber ich möchte keine neue Spalte für Gravatars erstellen, und ich würde lieber die nativen Attribute Auth::user()
verwenden.Wie implementiere ich Gravatar in Laravel?
Antwort
Es stellt sich heraus, dass Sie einen Laravel-Mutator verwenden können, um Attribute zu erstellen, die in Ihrem Modell nicht vorhanden sind. Angenommen, Sie haben ein User
Modell mit einer obligatorischen email
Spalte in der entsprechenden users
Tabelle, nur Stick dies in Ihrem User
Modell:
public function getGravatarAttribute()
{
$hash = md5(strtolower(trim($this->attributes['email'])));
return "http://www.gravatar.com/avatar/$hash";
}
Nun, wenn Sie dies tun:
Auth::user()->gravatar
Sie erhalten die gravatar.com URL, die Sie erwarten. Ohne eine Gravatar-Spalte, Variable, Methode oder irgendetwas anderes zu erstellen.
Erweiterung auf Wogan Antwort ein bisschen ...
Ein weiteres Beispiel einer Trait mit:
namespace App\Traits;
trait HasGravatar {
/**
* The attribute name containing the email address.
*
* @var string
*/
public $gravatarEmail = 'email';
/**
* Get the model's gravatar
*
* @return string
*/
public function getGravatarAttribute()
{
$hash = md5(strtolower(trim($this->attributes[$this->gravatarEmail])));
return "https://www.gravatar.com/avatar/$hash";
}
}
nun an einem bestimmten Modell (dh Benutzer), wo Sie Gravatar unterstützen wollen, importieren Sie einfach den Zug und es verwendet:
use App\Traits\HasGravatar;
class User extends Model
{
use HasGravatar;
}
Wenn das Modell nicht hat ein email
Spalte/Attribut, außer Kraft setzt einfach den Standard indem sie sie im Konstruktor des Modells einstellen wie so:
public function __construct() {
// override the HasGravatar Trait's gravatarEmail property
$this->gravatarEmail = 'email_address';
}
Ausgezeichnet! Ja, ich würde jetzt definitiv einen Trait-basierten Ansatz empfehlen, nachdem ich zwei Jahre mit Laravel gearbeitet habe. Danke für das Teilen @anderly! – Wogan
- 1. Wie implementiere ich IEnumerable?
- 2. Wie implementiere ich `prepareForReuse`?
- 3. Wie implementiere ich jquery.sound.js?
- 4. Wie implementiere ich IValidatableObject?
- 5. Wie implementiere ich JDatePicker
- 6. Wie implementiere ich bedingtes CSS?
- 7. Wie implementiere ich einen Sprachwechsler?
- 8. Wie implementiere ich eine Delegiertenfabrik?
- 9. Wie implementiere ich dieses Ähnlichkeitsmaß in Python?
- 10. Wie implementiere ich Suchfunktionalität in einer Website?
- 11. Wie implementiere ich acts_as_follower in Kommentaren?
- 12. Wie implementiere ich Zugriffsspezifizierer in C?
- 13. Wie implementiere ich Voice-Chat in Kakao?
- 14. Wie implementiere ich OpenID in meiner Webanwendung?
- 15. Wie implementiere ich virtuelle Methoden in Implementierungsdateien?
- 16. Wie implementiere ich AVAssetImageGenerator.copyCGImageAtTime in schnellen
- 17. Wie implementiere ich einen Nullkoaleszenzoperator in SQLAlchemy?
- 18. Wie implementiere ich Kategorien in PHP
- 19. Wie implementiere ich Brotli-Komprimierung in Apache?
- 20. Wie implementiere ich Versandtabellen in Perl?
- 21. Wie implementiere ich die Fehlerbehandlung in Grails?
- 22. Wie implementiere ich Zip-Funktionalität in VBA?
- 23. Wie implementiere ich RingtonePreference in PreferenceFragmentCompat?
- 24. Wie implementiere ich Redis in CodeIgniter?
- 25. Wie implementiere ich Kafka Consumer in Scala?
- 26. Wie implementiere ich isChecked in Protractor
- 27. Wie implementiere ich in TSX aus Tutorial?
- 28. Open-Source-Gravatar-ähnliche Implementierungen?
- 29. Lädt gravatar mit jquery
- 30. Drucken Gravatar mit Sprintf
wow, das ist toll – jhamPac