Everyday is a blessing

The only thing we know about the future is that it will be different.

Filament action不执行
filament的resource列表页table使用了groupBy分组统计,设置column action后点击不执行 期望是点击column弹出modal,debug后发现点击column时filament会根据当前行主键查数据库,找不到当前行记录,就不会触发相关action. 解决方法是重写对应resource的ListRecords实现类的getTableRecordKey和getTableR......
React性能优化
迫于dva4年没更新,把老项目切换成zustand,用起来真的简单,完美支持typescript,但是换完之后真的好卡…能感觉出来的那种卡 Hooks useEffect,useMemo,useCallback 这几个hooks全用上了,还是有点卡… 控制台打开网络请求,也不慢啊😥 React DevTools 这个时候可以使用React DevTools来查看性能 React DevTools是一个浏览器插件,可以查看React组件的层级结构,状态和性能 React DevTools的Pro......
Mecab日语分词
Mac brew install mecab mecab-ipadic export CGO_LDFLAGS="`mecab-config --libs`" export CGO_CFLAGS="-I`mecab-config --inc-dir`" go get -u github.com/shogo82148/go-mecab Linux yum install mecab mecab-ipadic mecab-devel export CGO_LDFLAGS="`mecab-config --libs`" export CGO_CFLAGS="-I`mecab-config --inc-dir`" Usage mecab 输入内容回车 指定输入输出文件 mecab input.txt -o output.txt Format 小野さん,今日はしっかり食べておいてください。明日からハードスケジュールで,あちこち行きますからね。 tagger, _ := mecab.New(map[string]string{"output-format-type": "wakati"}) tagger, _ := mecab.New(map[string]string{"output-format-type": "wakati"}) defer tagger.Destroy() format := c.FormValue("format") if format == "lattice" { lattice, _ := mecab.NewLattice() defer lattice.Destroy() lattice.SetSentence(c.FormValue("sentence")) _ = tagger.ParseLattice(lattice) r := lattice.String() return util.Success(c, strings.Split(r, "\n")) } result, _ := tagger.Parse(c.FormValue("sentence")) return util.Success(c, strings.Split(result, "\n")) //lattice 换行区分 [ "小野\t名詞,固有名詞,人名,姓,*,*,小野,オノ,オノ", "さん\t名......
Filamentphp
filamentphp 是可以修改代码自动刷新页面的,不仅是blade文件,resource文件也可以 同事做的项目初始化,我接手的时候,filament已经安装好了,无奈hot reload一直不行,每次改完都要按一下刷新,太难了 按照以下步骤检查了配置 env的APP_URL配置正确 vite的配置也对 import {defineConfig} from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: [ 'resources/css/app.css', 'resources/js/app.js', 'resources/css/filament/admin/theme.css' ], refresh: true, }), ], }); tailwindcss也没啥问题 import defaultTheme from 'tailwindcss/defaultTheme'; import forms from '@tailwindcss/forms'; /** @type {import('tailwindcss').Config} */ export default { content: [ './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php', './storage/framework/views/*.php', './resources/views/**/*.blade.php', ],......
Typeorm
在typeorm里orderby 使用 coalesce 函数 const q = this.announcementRepository.createQueryBuilder( 'announcement', ); q.orderBy(`COALESCE(announcement.scheduled_at, announcement.updated_at, announcement.created_at)`, 'DESC') //这么写 会报错 "COALESCE(`announcement" alias was not found. Maybe you forgot to join it? //要先addselect 添加alias 然后 q.orderBy(`COALESCE(announcement_scheduled_at, announcement_updated_at, announcement_created_at)`, 'DESC') 真的是无语了,为啥typeorm 连个orderByBaw的方法都没有,自带的raw方法返回的是FindOperator???......