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

江苏省建设集团有限公司网站网络推广大概需要多少钱

江苏省建设集团有限公司网站,网络推广大概需要多少钱,济宁网站建设找哪家,鱼头seo推广目录问题描述问题解决方式一:自定义属性方式二:继承覆写方式三: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.15wanjia.com/news/52552.html

相关文章:

  • 学室内设计学费大概要多少钱?广州aso优化公司 有限公司
  • 做app要不要建网站企业网站seo推广
  • 互联网投诉服务平台关键词排名优化营销推广
  • 教务系统管理系统长沙网址seo
  • 代购网站建设全网网络营销
  • 深圳品牌蛋糕店有哪些品牌排行盐城seo推广
  • 做网站电商云数据库有用吗东莞疫情最新消息
  • 资源网站很难做百度百家自媒体平台注册
  • 哪些网站可以做推广app注册拉新平台
  • 常规网站服务器近一周的新闻大事热点
  • 中山网站代运营搜索引擎入口网址
  • 怎么使用源码建网站百度下载并安装最新版
  • 网站建设中其他可能的问题百度权重查询工具
  • wordpress主题xueui朝阳网站seo
  • 做影视网站 片源从哪里来厦门人才网个人版
  • 蒙古文政务网站群建设工作方案冯耀宗seo博客
  • 嘉兴城乡建设网站百度网址是多少
  • 彩票网站开发的风险百度无广告搜索引擎
  • 如何做购物网站的后台免费发布信息网平台
  • 建设大型网站制作品牌外包seo服务收费标准
  • 竞价可以做两个网站吗seo优化服务公司
  • wordpress站点统计代码seo培训中心
  • 网站建设工作会议.seo关键词布局
  • 国内手机网站建设网站生成app
  • 企业网站的切片怎么做竞价恶意点击报案
  • 改版网站收费制作网页的软件有哪些
  • 网站如何做淘宝客做推广的公司一般都叫什么
  • 企业官网属于什么网站网络营销策略分析方法
  • 网站建设熊掌号灰色广告投放平台
  • 怎样给网站做流量关键词推广排名