yii2 aftersave怎么用

  介绍

这篇文章将为大家详细讲解有关yii2 aftersave怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强> yii2在保存完之后,会调用aftersave方法,aftersave里只做了一件事,就是触发了相应的事件事件,EVENT_AFTER_INSERT或者EVENT_AFTER_UPDATE,可以看下yii2的事件

<强>  yii2 aftersave怎么用“> </强> </p> <p>需要把用户提交的数据保存到看表,同时表单中的add_img图片地址数组,分别保存到lookmeida表。</p> <p>这个多出来的,保存图片的功能,不需要改动控制器的代码,借助模型的aftersave生命周期函数,就可以自动帮我们完成。原理是看表的记录保存(或者修改)之后,会产生一个lookid,然后我们将这个lookid和mediaurl存储到lookmedia表中去。<br/> </p> <pre类=,,public  function  aftersave(插入、changedAttributes美元)   ,,,{,,,,,,,if  (Yii:应用程序→美元id==& # 39; app-backend& # 39;){,,,,,,,,,,,//保存图片字段   ,,,,,,,,,,,add_imgarr=这→美元add_img;,,,,,,,,,,,, if  (add_imgarr美元){,,,,,,,,,,,,,,,foreach  (array_filter (add_imgarr美元),as  mediaurl美元){   ,,,,,,,,,,,,,,,,,,,美元lookmedia=new  lookmedia ();   ,,,,,,,,,,,,,,,,,,,美元lookmedia→lookid=$这→lookid;   ,,,,,,,,,,,,,,,,,,,美元lookmedia→mediaurl=$ mediaurl;   ,,,,,,,,,,,,,,,,,,,美元lookmedia→类型=0;   ,,,,,,,,,,,,,,,,,,,美元lookmedia→保存();   ,,,,,,,,,,,,,,,}   ,,,,,,,,,,,}   ,,,,,,,},,,,,,,,if (父:afterSave(插入、changedAttributes美元)),{,,,,,,,,,,,return 真实;   ,,,,,,,}else  return 假;   ,,,}

这里只提三点,也算是几个坑吧:

1) afterSave的参数,插入和changedAttributes美元是固定写法,必须要有,否则报错。

2)函数内部,在本地环境中,我之前写的是beforeSave无报错,程序运行正常,但移植到服务器上之后,会报错,于是改为afterSave后正常。

3)实测,我们新增的逻辑,必须放在父函数之外,否则不会被执行(图片已经上传,但是lookmedia表中没有记录)

关于“yii2 afterSave怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

yii2 aftersave怎么用