Cách nhanh nhất để triển khai URL Gravatar trong Laravel là gì? Tôi có một trường địa chỉ email bắt buộc, nhưng tôi không muốn tạo cột mới cho Gravatars và tôi muốn sử dụng thuộc tính gốc Auth::user()
.Làm cách nào để triển khai Gravatar trong Laravel?
Trả lời
Biến ra, bạn có thể sử dụng trình biến đổi Laravel để tạo các thuộc tính không tồn tại trong mô hình của bạn. Giả sử bạn có một mô hình User
với một email
cột bắt buộc trong users
bảng tương ứng, chỉ cần dính này trong mô hình User
của bạn:
public function getGravatarAttribute()
{
$hash = md5(strtolower(trim($this->attributes['email'])));
return "http://www.gravatar.com/avatar/$hash";
}
Bây giờ khi bạn làm điều này:
Auth::user()->gravatar
Bạn sẽ nhận được gravatar.com URL bạn đang mong đợi. Không tạo cột gravatar, biến, phương thức hay bất kỳ thứ gì khác.
Mở rộng về câu trả lời của Wogan một chút ...
Một ví dụ sử dụng một Trait:
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";
}
}
Bây giờ trên một mô hình nhất định (ví dụ: tài khoản), nơi bạn muốn hỗ trợ Gravatar, bạn chỉ cần nhập các đặc điểm và sử dụng nó:
use App\Traits\HasGravatar;
class User extends Model
{
use HasGravatar;
}
Nếu mô hình không có một email
cột/thuộc tính, chỉ cần ghi đè mặc định bằng cách đặt nó trong các nhà xây dựng mô hình của bạn như như vậy:
public function __construct() {
// override the HasGravatar Trait's gravatarEmail property
$this->gravatarEmail = 'email_address';
}
Tuyệt vời! Tôi chắc chắn muốn giới thiệu cách tiếp cận dựa trên Trait ngay bây giờ, sau khi làm việc với Laravel trong hai năm. Cảm ơn bạn đã chia sẻ @anderly! – Wogan
- 1. Làm cách nào để triển khai `prepareForReuse`?
- 2. Làm cách nào để triển khai jScroll?
- 3. Làm cách nào để triển khai IEnumerable?
- 4. Làm cách nào để triển khai bộ?
- 5. Làm cách nào để triển khai FileTimeToSystemTime?
- 6. Làm cách nào để triển khai trình tạo trong C++?
- 7. Làm cách nào để triển khai thẻ trong Symfony 2?
- 8. Làm cách nào để triển khai gọi lại trong PHP?
- 9. Làm cách nào để triển khai OpenID trong Java
- 10. Làm cách nào để triển khai `cat` trong Haskell?
- 11. Làm cách nào để triển khai gọi lại trong C++?
- 12. Làm cách nào để triển khai SlideShow trong Android?
- 13. Làm cách nào để triển khai giao diện trong Ada?
- 14. Làm cách nào để triển khai finalize() trong kotlin?
- 15. Làm cách nào để triển khai Unix grep trong Perl?
- 16. Làm cách nào để triển khai API RESTful trong Perl?
- 17. Làm cách nào để triển khai thẻ bài trong Mongo?
- 18. Làm cách nào để triển khai HATEOAS trong Haskell?
- 19. Cách triển khai các ứng dụng CodeIgniter/Laravel
- 20. Làm thế nào để triển khai Laravel 4 ứng dụng trên Heroku?
- 21. Làm cách nào để sử dụng OpenID và triển khai nó trong ứng dụng Laravel của tôi?
- 22. Làm thế nào để triển khai laravel 4.2 trên lưu trữ được chia sẻ?
- 23. Làm cách nào để triển khai chỉ các mô-đun phụ sử dụng triển khai maven?
- 24. Làm thế nào để triển khai Scrum?
- 25. Làm cách nào để __slots__ được triển khai bằng Python?
- 26. Làm cách nào để triển khai EJB trên máy chủ?
- 27. Làm cách nào để triển khai giao thức mạng?
- 28. Làm cách nào để triển khai ứng dụng ASP.NET MVC3?
- 29. Làm cách nào để triển khai Tomcat từ NetBeans?
- 30. Làm cách nào để triển khai đúng mã cheat?
wow, điều này thật tuyệt vời – jhamPac