请问thinkphp中model类自动完成功能 回调函数能不能获取其他字段的值?

thinkphp中model类自动完成功能 回调函数能不能获取其他字段的值?


UYOU
浏览 608回答 6
6回答

慕斯王

方法一(不使用回调传参用I函数接收参数):protected $_validate = array(array('invited_id','check_invited','邀请人不存在!',0,'callback',3 ),);protected function check_invited( $invited_id ) {$invite_code = I('invite_code');//....}方法二(重写模型_initialize方法):public function _initialize() {$this->_validate[3][6]['invite_code'] = I('invite_code'); // 动态加入回调参数}protected function check_invited( $invited_id, $invite_code ) {echo $invite_code;}推荐使用方法一,方法二有些南辕北辙只做为参考。

泛舟湖上清波郎朗

如果是查询当前用户的上级用户的话,可以在用户登录的时候就把这个值放入到session中,然后有更改的时候再修改数据库的同时将session中用户的pid修改,然后再获取pid的时候直接从session中获取就好了啊。

智慧大石

1、thinkphp中的自动完成函数调用有两种不同的方法,分别为callback与function;12345678910namespace Home\Model;use Think\Model;class UserModel extends Model{     protected $_auto = array (          array('status','1'),  // 新增的时候把status字段设置为1         array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理         array('name','getName',3,'callback'), // 对name字段在新增和编辑的时候回调getName方法         array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳     );}2、使用callback时,其方法是在同一个model中定义的;1234567891011121314namespace Home\Model;use Think\Model;class UserModel extends Model{     protected $_auto = array (          array('status','1'),  // 新增的时候把status字段设置为1         array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理         array('name','getName',3,'callback'), // 对name字段在新增和编辑的时候回调getName方法         array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳     );           public function getName(){         return $name;     }}3、使用fucntion的方法对应的方法定义是在模块中的common文件夹下的function.php中;

拉丁的传说

thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0,3}取标题中前3个字符 {$times|date='Y-m-d H:i:s',###}将times时间戳转换为日期格式 ========... 
打开App,查看更多内容
随时随地看视频慕课网APP