myweishanli

第 228 位会员

会员
个人信息
  • 加入于 2015-11-10 09:00:20
  • 城市 厦门市
  • GitHub myweishanli
  • 最后登录时间 1年前
个人成就
  • 发表文章次数 3
  • 发布回复次数 4
  • 个人主页浏览次数 15
分享 Yii2 SSDB ActiveRecord ActiveQuery NoSql扩展2年前

@light #2楼 没有停止正准备发布Rbac2.0这个会稍微延迟些

Yii2 小贴士集合2年前

场景: 数据库有user表有个avatar_path字段用来保存用户头像路径

需求: 头像url需要通过域名http://b.com/作为基本url

目标: 提高代码复用

此处http://b.com/可以做成一个配置

示例:

User.php

class User extends \yii\db\ActiveRecord
{
    ...
    public function extraFields()
    {
        $fields = parent::extraFields();
        
        $fields['avatar_url'] = function () {
            return empty($this->avatar_path) ? '可以设置一个默认的头像地址' : 'http://b.com/' . $this->avatar_path;
        };

        return $fields;
    }
    ...
}

ExampleController.php

class ExampleController extends \yii\web\Controller
{
    public function actionIndex()
    {
        $userModel = User::find()->one();
        $userData = $userModel->toArray([], ['avatar_url']);
        
        echo $userData['avatar_url']; // 输出内容: http://b.com/头像路径
    }
}