阿里云优惠新用户专享9元/月

laravel-admin关联模型的小坑

laravel-admin写起来确实很方便。 在$grid 可以使用 关联模型获取关联表的数据,可设置为可修改。 比如: public function profile() { return $this->hasOne(Profile::class); } $grid->profile()->gender()->editable('select', [1 => '男', 2 => '女']); 在$from中也可以 使用这个关联的模型来 保存数据 比如: $form->select('profile.gender', '性别')->options([1 => '男', 2 => '女']); 此时数据可以正常的创建和修改。 重点来了,此处需要注意一个坑。 在命名关联模型时不可使用驼峰写法,必须全部小写,否则,$grid显示正常,就是修改时$from保存不了数据。

阅读更多...

阿里云优惠新用户专享9元/月

Laravel开发通过Model的$attributes设置字段默认值

使用Laravel开发时,数据库非空字段未设置默认值,可以在此表Model中添加 $attributes为字段设置默认值,通过save方法保存时会自动添加。 例如,为文章表 访问数 字段 access_nums 添加 默认值0,则新建文章时会默认access_nums为0。 protected $attributes = [ 'access_nums' => 0 ];

阅读更多...

阿里云优惠新用户专享9元/月

CentOS 7 cron定时重启php-fpm

服务器使用nginx+php-fpm配置。 最近发现php-fpm总是不释放内存,服务器内存1G,本身就小,过一段时间就占满了。 只好在占满前手动restart。 然后搜索了一下,发现php-fpm确实存在不释放内存的情况。 按照介绍重新设置了 pm.start_servers:动态方式下的起始php-fpm进程数量 7 pm.min_spare_servers:动态方式下的最小php-fpm进程数 4 pm.max_spare_servers:动态方式下的最大php-fpm进程数量 10 最终命令: pm.start_servers = min_spare_servers + (max_spare_servers - min_spare_servers) / 2 试用了一段时间,内存确实到90%左右就不增长缓慢了,但是数据堵塞了,只好继续restart。 在找到替换php-fpm之前,省事的方法还先设置一个定时任务,每天凌晨重启一下php-fpm访问。 先到win10自带的ubuntu上测试一番 第一个命令 service cron start : 提示no crontab for root – using an empty one 选择编辑器后 填写 * * * * * service nginx restart 每分钟重启一次nginx 默默等待一分钟,打开top,什么都没有发生,找日志,结果日志也没有。 搜索一番,始终找不到日志,顿时没了头绪。 换一个命令,再试一次。 * * * * * date >> /var/log/temp.txt 再次默默等待一分钟,切到var的log目录,居然出现了temp.txt。 再次搜索 定时启动php-fpm的命令。 最终命令:每天凌晨1点重启php-fpm服务 0 1 * * * systemctl restart php-fpm

阅读更多...

阿里云优惠新用户专享9元/月

PM2启动Laravel队列运行PHP命令

最近要用到Laravel的队列,官方文档推荐了Supervisor,进程守护程序平时用的比较少,看到文档上的操作过程有点懵。 同事推荐了PM2,PM2是Node.js提供的进程守护工具。 先安装nodejs,然后执行npm install pm2 -g,安装完毕。 这个…确实安装简单,对新手用户友好。 代码也准备好了,万事必备,准备开撸。 文档上的命令都是关于js的,依葫芦画瓢运行了几个命令都报错了。 一番查找,才找到了PM2启动laravel队列命令 最终命令: pm2 start artisan --name laravel-worker --interpreter php -- queue:work --daemon

阅读更多...