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
。
php
1 | 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'; |