请选择 进入手机版 | 继续访问电脑版

一元网络论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5467|回复: 0

ThinkPHP 6 模型事件的实例代码教程

[复制链接]

121

主题

126

帖子

581

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
581
发表于 2020-11-22 15:23:08 | 显示全部楼层 |阅读模式

ThinkPHP6取消了模型的自动完成功能,由模型事件代替,而模型事件非常抽象,没使用过的话,没有概念,现在用一个小的实例代码帮助理解模型事件的应用。


一、在模型中定义以下模型事件。该模型事件的意思是:在User模型执行插入动作之前,传入一个由控制器生成的$user实例,并将该实例的ip属性设置为request()->ip();,即请求发出方的IP地址。    

namespace app\model;use think\Model;

class User extends Model

{    

   protected static function onBeforeInsert($user)  

            {

$user->ip=request()->ip();    

}

}


二、控制器中的操作,控制器生成一个user实例,并将其id属性设置为1,然后插入数据。这样最终的效果是将id设为1,将ip设为request()->ip(),然后执行插入。模型事件onBeforeInsert完成ip属性的设置,id属性由控制器设置。

                       $user= new User;

$user->id  =  1        

$user->save();


以上就是ThinkPHP6模型事件的作用,全局事件也基本是这个概念,希望大家理解。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|一元网络论坛

GMT+8, 2024-3-29 23:03 , Processed in 0.095705 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表