日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php上传商品信息并显示,第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...

發布時間:2024/9/27 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php上传商品信息并显示,第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[TOC]

手冊地址:

before_insert(新增之前的操作)

要實現的功能

上傳原圖片,在新增數據之前生成三張縮略圖片,然后再插入數據

添加商品基本信息及通過后置鉤子上傳商品主圖

思路

控制器里調用模型的save()方法保存數據

模型里的用前置勾子beforeInsert()保存之前把上傳原圖片先成三張縮略到指定的目錄里

再把三張縮略圖的和原圖片的地址拼裝好,放到對應的表字段里.如: $goods->og_thumb=$ogThumb;

模型里執行完前置勾子beforeInsert()函數后(把要保存的數據處理好),控制器里就會把數據save到表里.

觸發條件:

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;

});

}

總結

以上是生活随笔為你收集整理的php上传商品信息并显示,第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。