阿里云新用户优惠

Laravel composer导入本地包

老项目使用的是laravel5.1,需要升级到laravel8,php也需要同步升级。 原先项目的使用的phpoffice已停止更新且有些特性PHP8不支持,无法直接使用,若使用其他项目包改动比较大。 故需要将此包导入成本地包,然后直接修改不兼容代码。 项目根目录创建文件夹packages,用来放需要本地化的项目代码,例如本次项目路径为:packages/phpoffice/phpexcel 修改根目录下的composer.json配置 "repositories": [ { "type": "path", "url": "packages/phpoffice/phpexcel" } ] 执行composer命令 composer require phpoffice/phpexcel:*@dev

阅读更多...

阿里云新用户优惠

laravel临时关闭created_at、updated_at的自动更新

laravel临时关闭created_at、updated_at的自动更新。 直接上代码 $user = new User([ 'id' => 1, 'name' => 'xiyoudaodao', 'password' => Hash::make('admin'), 'login' => 'admin' ]); $user->timestamps = false; $nowTimeUnix = time(); $user->created_at = date("Y-m-d H:i:s", $nowTimeUnix + 10); $user->updated_at = date("Y-m-d H:i:s", $nowTimeUnix + 10); $user->save();

阅读更多...

阿里云新用户优惠

Laravel图片处理包intervention-image的使用

最近偶然发现了Laravel可用的图片处理包intervention-image。 文档地址:http://image.intervention.io 安装起来也很简单。 composer require intervention/image 然后到config/app.php的 $providers中添加 Intervention\Image\ImageServiceProvider::class $aliases中添加 'Image' => Intervention\Image\Facades\Image::class 使用时引入Image的命名空间 use Intervention\Image\Facades\Image; 这样就可以使用Image来方便的处理图片了。 基本操作: $img = Image::make('public/foo.jpg')->resize(300, 200); $img->save('public/bar.png'); save()也可以不填写路径,不填默认为覆盖原图。 intervention通常会在PHP脚本完成后会自动销毁资源。 也可以使用destroy()方法主动销毁资源,在调用方法后,图像实例不再可用。 $img = Image::make('public/foo.jpg'); $img->resize(320, 240); $img->save('public/small.jpg'); $img->destroy(); 此处有一坑,save()覆盖原图时,destroy()不能正常销毁。save()为不同文件,可正常使用destroy()。

阅读更多...

阿里云新用户优惠

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保存不了数据。

阅读更多...

阿里云新用户优惠

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

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

阅读更多...

阿里云新用户优惠

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

阅读更多...