当前位置: 首页 > news >正文

找人做网站注意事项舞钢网站建设

找人做网站注意事项,舞钢网站建设,wordpress博客排行,网页版微信登录不了目录问题描述问题解决方式一:自定义属性方式二:继承覆写方式三:trait复用方式四:定义Cast子类update不生效参考文章问题描述 Model示例 class UserModel extends Model {protected $table tb_user;protected $casts [alias …

目录

    • 问题描述
    • 问题解决
      • 方式一:自定义属性
      • 方式二:继承覆写
      • 方式三:trait复用
      • 方式四:定义Cast子类
    • update不生效
    • 参考文章

问题描述

Model示例

class UserModel extends Model
{protected $table = 'tb_user';protected $casts = ['alias'            => 'array'];
}

直接存alias 字段,数据库会显示unicode码

["\u80c3\u75db\u554a"]

问题解决

方式一:自定义属性

class UserModel extends Model
{public function setAliasAttribute($option){$this->attributes['alias'] = json_encode($option, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);}
}

方式二:继承覆写

class UserModel extends Model
{protected $table = 'tb_user';protected $casts = ['alias'            => 'array'];// 覆盖asJson方法protected function asJson($value){return json_encode($value, JSON_UNESCAPED_UNICODE);}
}

方式三:trait复用

trait UnicodeJsonTrait
{/*** 序列化json* @param $value* @return false|string*/protected function asJson($value){return json_encode($value, JSON_UNESCAPED_UNICODE);}
}

直接在基类里使用(也可以在基类中覆写)

class BaseModel extends Model
{use UnicodeJsonTrait;
}

继承基类

class UserModel extends BaseModel
{protected $table = 'tb_user';protected $casts = ['alias'            => 'array'];
}

方式四:定义Cast子类

<?phpnamespace App\Casts;use Illuminate\Contracts\Database\Eloquent\CastsAttributes;class JsonCast implements CastsAttributes
{public function get($model, string $key, $value, array $attributes){return json_decode($value, true);}public function set($model, string $key, $value, array $attributes){return json_encode($value, JSON_UNESCAPED_UNICODE);}
}

使用

<?phpnamespace App\Models;use App\Casts\JsonCast;
use Illuminate\Database\Eloquent\Casts\Attribute;class UserModel extends Model
{protected $table = 'tb_user';protected $casts = ['alias'            => JsonCast::class,];
}

update不生效

save/create可以正常触发数据转换,update的时候需要注意

平常更新数据是这样的

$this->where(xxx)->update(xxx)

需要注意的是,这样写不会触发updating和updated事件

需要先获取模型再进行对应的操作,才能触发对应的模型事件

$this->where(xxx)->first()->update(xxx)// 或
$this->find(xxx)->update(xxx)

参考文章

  • Laravel5Model$catstoarrayutf-8JSON_UNESCAPED_UNICODE
  • PHP Laravel cast array 数据库存 json 时的 unicode 编码问题
  • Laravel使用Casts转换类型
  • laravel模型事件-update触发updating和updated的问题
http://www.yayakq.cn/news/904851/

相关文章:

  • 自学做网站需要学会哪些图形化html编辑器
  • 初一下电脑课书做网站做任务赚话费的网站
  • 丹阳网站建设价格wordpress加中文字体
  • 模板做的网站如何下载代刷网站推广免费
  • 云南微网站建设的公司有哪些做博客网站需要工具吗
  • 珠海移动网站建设公司排名文山网站建设联系电话
  • 建模网站素材万网空间最多放几个网站
  • 网站推广 英文南开做网站的公司
  • 移动端网站的优势qq空间网址是什么
  • 北流网站建设制作外贸公司怎么起步
  • 产品报价网站建设费用最好的汽车科技网站建设
  • 网站制作难不难godaddy如何创建网站
  • 高端企业网站建设规定要怎样夸一个网站做的好看
  • wordpress赞 赏 分享郑州互联网seo
  • 网站建设需要怎样的经营范围临清网站建设公司
  • 玉器网站模版上海网站改版
  • 高端网站建设报价免费跨境电商网站
  • 网站建设有什么样好的建设意见广告设计公司的进项有哪些
  • 手机4g建立网站莱芜拉呱
  • wordpress首页文章并排网络推广怎么优化
  • 建设部网站有项目经理资质查询系统好搜seo软件
  • android开发者网站阿里云做电影网站
  • 常熟网站建设云南网站新备案制
  • 哪个网站可以学做馒头新人写手适合哪个平台
  • 免费设计logo图标生成器江门百度网站快速优化
  • 深圳市建设局网站首页怎么免费做公司网页
  • 五 网站开发总体进度安排网站建站网站80s隐秘而伟大
  • 太原市建设工程招标投标网站虎嗅 wordpress
  • 上海网站专业制作物联网卡一年服务费多少钱啊
  • 国外做的好看的网站设计做外贸怎么在阿里云建网站