ThinkPHP 6 模型事件的实例代码教程
<p>ThinkPHP6取消了模型的自动完成功能,由模型事件代替,而模型事件非常抽象,没使用过的话,没有概念,现在用一个小的实例代码帮助理解模型事件的应用。<br></p><p><br></p><p>一、在模型中定义以下模型事件。该模型事件的意思是:在User模型执行插入动作之前,传入一个由控制器生成的$user实例,并将该实例的ip属性设置为request()->ip();,即请求发出方的IP地址。 </p><p>namespace app\model;use think\Model;</p><p>class User extends Model</p><p>{<span style="white-space: pre;"> </span> </p><p> protected static function onBeforeInsert($user) </p><p> {</p><p><span style="white-space:pre"> </span>$user->ip=request()->ip();<span style="white-space:pre"> </span> </p><p><span style="white-space:pre"> </span>}</p><p>}</p><p><br></p><p>二、控制器中的操作,控制器生成一个user实例,并将其id属性设置为1,然后插入数据。这样最终的效果是将id设为1,将ip设为request()->ip(),然后执行插入。模型事件onBeforeInsert完成ip属性的设置,id属性由控制器设置。</p><p> $user= new User;</p><p><span style="white-space:pre"> </span>$user->id = 1 </p><p><span style="white-space:pre"> </span>$user->save();</p><p><br></p><p>以上就是ThinkPHP6模型事件的作用,全局事件也基本是这个概念,希望大家理解。</p>
页:
[1]