Laravel Eloquent 日期系列化成 json,默认系列化格式为:2023-03-08T08:16:02.000000Z。
原因是 Laravel 模型基类的 serializeDate() 时间系列化方法调用 Carbon\Traits\Converter::toJSON() 方法,返回的是 ISO-8601 格式的日期。
引起问题的代码如下:
1 | // Illuminate\Database\Eloquent\Concerns\HasAttributes |
Laravel Eloquent 日期系列化成 json,默认系列化格式为:2023-03-08T08:16:02.000000Z。
原因是 Laravel 模型基类的 serializeDate() 时间系列化方法调用 Carbon\Traits\Converter::toJSON() 方法,返回的是 ISO-8601 格式的日期。
引起问题的代码如下:
1 | // Illuminate\Database\Eloquent\Concerns\HasAttributes |
Laravel 中使用 Intervention 缩放图片/生成缩略图
Laravel 中使用 Intervention 库缩放图片的时候,没必要用专供的接口,用通用不需要任何配置,还更简单,直接调用就可以。
Intervention 包composer require intervention/image
brew 无法执行命令,总出现 Downloading https://.../api/formula.json
每次 brew 命令都出现 Downloading https://formulae.brew.sh/api/formula.json,而且特别慢,总是超时,翻墙了也不管用…brew 源已经设为阿里云的了,还出现这东西。原因是 brew 4 默认从 HOMEBREW_API_DOMAIN 安装应,每次都下载 formula.json。
有两个方式能解决这个问题。
方式1:把 HOMEBREW_API_DOMAIN 设置到国内源,这样每次虽然都会下载 formula.json,但是就几秒的事。
1 | echo 'export HOMEBREW_API_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles/api' >> ~/.bash_profile |
方式2:禁止从 API 安装应用,不会每次执行命令就跑出这东西,但要手动升级应用。
把 export HOMEBREW_NO_INSTALL_FROM_API=1 加入 ~/.bash_profile
1 | echo 'export HOMEBREW_NO_INSTALL_FROM_API=1' >> ~/.bash_profile |
以前用 window 系统的时候,经常去 php 官网下载不同版本的 php 来使用,改一下系统 path 就可以更换默认 php 版本,其它版本用完整路径也可以使用。Mac 上就更省事一点,用 brew 命令就可以安装不同版本的 php,再用 brew-php-switcher 切换默认 php 版本,而且用 pecl 命令就可以安装 pecl 扩展。
php 安装包版本1 | brew search php |
执行命令后,你会看到不同版本的 php, 最新版的是不带版本号直接是 php,旧版本带版本号,如:php@8.1、php@7.4。
php1 | brew install php #不带版本号是最新版 |
php 版本原 brew 源极慢,有必要把 Homebrew 源改为成国内源。
Homebrew 源主要有四个部分组成:
| 名称 | 说明 |
|---|---|
| brew | Homebrew 源代码仓库 |
| homebrew-core | Homebrew 核心软件仓库 |
| homebrew-bottles | Homebrew 预编译二进制软件包 |
| homebrew-cask | 提供 macOS 应用和大型二进制文件 |
如果还没安装 homebrew,则需要先安装。
用官网推荐安装方式:
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
如果安装很慢,可使用清华源安装
1 | git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install |
1 | $ cd "$(brew --repo)" && git remote -v |
使用 Dexie.js 简化访问浏览器本地数据库 IndexedDB
localStorage 本地存储各家浏览器分别限制在 2.5M ~ 10M 之间,本地浏览器需要存储较大数据的时候就不能用了, IndexedDB 就能解决这个问题。
IndexedDB 是存储结构类似 MangoDB 的对象存储数据库,不是关系型数据库。 IndexedDB API 稍微有点麻烦,用 Dexie.js 可简化操作。
在 Vue3 <script setup> + 组合式 API 之 怎用使用响应式变量
Vue3 的响应式是:当更改响应式对象的值改变时,视图会随即自动更新。
ref() 返回一个响应式对象,可以用 value 属性来访问或更改对象的值。ref 对象在模板中会自动解包,用变量名不需要加 .value 就能访问。
1 | <script setup> |
Vue3(单文件组件 + <script setup> + 组合式 API)组件实例常用内置属性、方法、函数
本文总结 Vue3 组件实例在模板中暴露的常用公共属性和方法,以及对应的 组合式 API 函数。
$data/$props/$options 属性在 组合式 API 下几乎用不到。
$el 不建议用。
$slots 表示父组件所传入插槽的一个对象,很少用,有兴趣可查看官方文档。
模板中用 $parent 获取父组件实例,可访问父组件用 defineExpose() 显式暴露的绑定。
组合式 API 先在 setup 中用 getCurrentInstance() 获取到当前组件实例,再用 parent 属性访问父组件。getCurrentInstance().parent 除了能访问父组 defineExpose() 暴漏的绑定外,能访问父组件更多的属性和方法,多用于组件的开发,在应用开发中一般不建议用。
1 | import { getCurrentInstance } from 'vue'; |