laravel使用gravatar作为默认头像


博客添加一个文章评论功能,需要给留言的用户生成一个默认头像,为了方便,选择使用gravatar。在laravel中集成gravatar相对比较简单,下面具体介绍继承方法。

在评论模型中添加访问器

<?php

namespace App\Model;

class Comment
{
    ...

    public function getAvatarAttribute()
    {
        $email = $this->email;
        $default = '/path/to/default/avatar.jpg';
        $size = 80;
        return "https://www.gravatar.com/avatar/"
            . md5( strtolower( trim( $email ) ) )
            . "?d=" . urlencode($default)
            . "&s=" . $size;
    }

    ...
}

在视图页面中渲染头像

    <img src="{{ $comment->avatar }}" />