第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...
生活随笔
收集整理的這篇文章主要介紹了
第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 手冊地址:
- before_insert(新增之前的操作)
- 要實現的功能
- 思路
- 觸發條件:
- 1. 控制器里必須要調用模型的save()方式保存數據,用insert()觸發不了勾子函數的
- 2. 模型初使化init()里使用 Goods::beforeInsert
手冊地址:
https://www.kancloud.cn/manual/thinkphp5/135195
before_insert(新增之前的操作)
要實現的功能
上傳原圖片,在新增數據之前生成三張縮略圖片,然后再插入數據 添加商品基本信息及通過后置鉤子上傳商品主圖思路
觸發條件:
1. 控制器里必須要調用模型的save()方式保存數據,用insert()觸發不了勾子函數的
$add=model('goods')->save($data);
控制器里
$add=model('goods')->save($data);
public function add() {if(request()->isPost()){$data=input('post.');// dump($data); die;//驗證// dump($_FILES);die;$validate = validate('goods');if(!$validate->check($data)){$this->error($validate->getError());}$add=model('goods')->save($data);if($add){$this->success('添加商品成功!','lst');}else{$this->error('添加商品失敗!');}return;} }2. 模型初使化init()里使用 Goods::beforeInsert
模型里
protected $field=true;//當插入到當然模型對應表里不存在的字段時,會被忽略掉 protected static function init() {/*** Goods指當前模型,也可以用self* beforeInsert 控制器調用本模型sava()方法保存之前的操作* $goods回調的數據,即控制器調用model保存時要存入的數據* 調用下面的upload函數時要用$goods(當前類的實例對象)去調用*/Goods::beforeInsert(function ($goods) {// 生成商品主圖的三張縮略圖if($_FILES['og_thumb']['tmp_name']){$thumbName=$goods->upload('og_thumb');$ogThumb=date("Ymd"). DS . $thumbName;$bigThumb=date("Ymd"). DS . 'big_'.$thumbName;$midThumb=date("Ymd"). DS . 'mid_'.$thumbName;$smThumb=date("Ymd"). DS . 'sm_'.$thumbName;$image = \think\Image::open(IMG_UPLOADS.$ogThumb);$image->thumb(config('big_thumb_width'), config('big_thumb_height'))->save(IMG_UPLOADS.$bigThumb);$image->thumb(config('mid_thumb_width'), config('mid_thumb_height'))->save(IMG_UPLOADS.$midThumb);$image->thumb(config('sm_thumb_width'), config('sm_thumb_height'))->save(IMG_UPLOADS.$smThumb);$goods->og_thumb=$ogThumb;$goods->big_thumb=$bigThumb;$goods->mid_thumb=$midThumb;$goods->sm_thumb=$smThumb;}$goods->goods_code=time().rand(111111,999999);//商品編號// dump($ogThumb); die;}); }轉載于:https://www.cnblogs.com/haima/p/9829402.html
總結
以上是生活随笔為你收集整理的第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【资源】16个在线机器学习视频与教程
- 下一篇: iBase4J部署总结