Submitted by gouki on 2021, March 5, 10:25 PM
Laravel 默认是通过migration来创建表,大部分情况下这并没有问题,然而如果是针对一个已经存在的项目想要做迁移,那就需要将DB转换成migration文件。早些年没有什么特别好的,写debugbar的那位写了一个,但已常年不更新了。后面sequel pro有一个插件,可以将指定的表转成migration文件,但这会有一个小小的问题,即:得安装sequel pro,还得更新插件。那究竟 没有一个好的laravel插件来做这个呢?
其实现在已经有了,打开:https://github.com/kitloong/laravel-migrations-generator,你就会看到了。在最初的时候,我是搜索到这个:https://github.com/barryvdh/laravel-migration-generator,上面有提示切换成:https://github.com/Xethron/migrations-generator,然而,这个大神现在也不更新了。在laravel 5之后就没有再更新过。现在这个kitloong的就是基于Xethron的库而进行更新的。
用法也很简单,composer require --dev "kitloong/laravel-migrations-generator",然后直接命令行运行:php artisan help migrate:generate,可以看帮助。如果没有特别的需求,直接php artisan migrate:generate完事。如果只想更新指定的表,那就:php artisan migrate:generate -t tablename
不多说,试试看吧
PHP | 评论:0
| 阅读:6405
Submitted by gouki on 2020, December 10, 4:55 PM
数据库查询的时候,报:group by 错误,也就是ONLY_FULL_GROUP_BY。
要么去改my.cnf,要么pdo的ATTR中也可以增加,但线上用的是一个很老的TP版本,而且受影响的字段不多,直接就在不需要group by的字段上加个方法:any_value进行解决。
例如:Db::table('model')->field('any_value(id) as id,any_value(title) as title, name')->group('name')->select();
PHP | 评论:0
| 阅读:5543
Submitted by gouki on 2020, September 13, 11:38 PM
本来我是应该不会遇到这种问题的吧?只是在用composer的时候,因为dcat-admin经常更新,但release版本又比较慢。所以就直接引用他的git了。本地无所谓,毕竟我有32G内存,上线后,在composer update的时候,报out of memory.
网上不少的例子都是说:git config --global pack.windowMemory 1024m,我这样试了之后没有解决
于是:
git config --global pack.windowMemory 1g
git config --global pack.packSizeLimit 1g
git config --global pack.deltaCacheSize 1g
git config --global core.packedGitLimit 1g
git config --global core.packedGitWindowSize 1g
还是没有用。再找资料的时候有看到说,可能是因为没有swap空间,即使你的内存大,没有swap也可能会有问题。于是看了一下,确实:free -m的时候。swap确实是0,参考:https://stackoverflow.com/questions/14038074/git-pull-fatal-out-of-memory-malloc-failed
好吧,几步操作:
1、dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
2、chmod 600 /root/myswapfile
3、mkswap /root/myswapfile
4、swapon /root/myswapfile
5、vim /etc/fstab
/root/myswapfile swap swap defaults 0 0
然后就一切OK了,没有好好排版。因为,断断续续的写了三天。中间还断过一次。忍忍吧(等什么时候换laravel后台再好好弄弄)
PHP | 评论:0
| 阅读:6847
Submitted by gouki on 2020, August 17, 11:11 PM
Dcat-Admin的multipleSelect和select 在新增的时候,可以通过default()方法给它赋值,但在编辑的时候,不能通过default方法赋值。
1、如果编辑的时候,默认数据库取出来的值,对应着 options中的key,可以直接使用。
2、如果需要调整,比如存到数据库时,是字符串型,但select/multipleSelect的value只能是数组。如果通过->value([$data])赋值也是无效的。只能通过customFormat方法进行赋值。默认的参数就是传进来的值。如果你是字符串,可以explde,如果是对象,可以遍历后返回。
参考 :http://www.dcatadmin.com/docs/master/model-form-fields.html
PHP | 评论:1
| 阅读:14805
Submitted by gouki on 2020, August 9, 9:33 AM
有时候你不得不承认,DCAT-admin / laravel-admin 做后台是属于比较方便的。你硬要说nova之类的,我也无话可说。但毕竟nova要钱,而且文档并没有国内的全。
为什么说dcat-admin,主要还是laravel-admin好久没有大更新了。然后laravel-admin的多应用要钱。虽然我买了,但更新太慢,我现在还是用dcat了。
很多人在github上面问,为什么不支持VUE。其实也能理解 ,vue如果用了, pjax就不太好用了。但我还是得说,如果你只是简单的,不做特别复杂的应用,还是有办法支持vue的。
首先全局引用JS,Admin::js(),这个不用多说,如果不想全局引用,那就在自己的页面里,将它引用出来就行了。
然后用了个简单的demo,
XML/HTML代码
- <div id="sign-form">
- @{{ form }}
- <el-input v-model="input" placeholder="请输入内容"></el-input>
-
- <el-steps :active="active" finish-status="success">
- <el-step title="步骤 1"></el-step>
- <el-step title="步骤 2"></el-step>
- <el-step title="步骤 3"></el-step>
- </el-steps>
-
- <el-button style="margin-top: 12px;" @click="next">下一步</el-button>
-
- </div>
- <script>
- var form = {};
- new Vue({
- el: '#sign-form',
- data() {
- return {
- form: form,
- input: '{{date('Y-m-d H:i:s')}}',
- active: 0
- };
- },
- mounted() {
- this.request();
- },
- methods: {
- formReset() {
- this.form = form;
- },
- request() {
- this.form = {a: 1, b: 2, c: 3, d: 5};
- {{--laravel.get('{{api_url('union/bind/check/123')}}', res => {--}}
- {{-- console.log(res);--}}
- {{--});--}}
- },
- next() {
- if (this.active++ > 2) this.active = 0;
- }
- }
- });
- </script>
保存后,点开网页看看。确实不会再加载了。但这种VUE,就只适合单页面用用了(当然,本身也就是为了在复杂的表单上使用它。也够了)
---差点没有保存。。
PHP | 评论:1
| 阅读:15845