UserModel::setField PHP Method

setField() public method

Set a single user property.
public setField ( integer $RowID, array | string $Property, boolean $Value = false ) : boolean
$RowID integer
$Property array | string
$Value boolean
return boolean
    public function setField($RowID, $Property, $Value = false)
    {
        if (!is_array($Property)) {
            $Property = [$Property => $Value];
        }
        $this->defineSchema();
        $Fields = $this->Schema->fields();
        $Set = array_intersect_key($Property, $Fields);
        self::serializeRow($Set);
        $this->SQL->update($this->Name)->set($Set)->where('UserID', $RowID)->put();
        if (in_array($Property, ['Permissions'])) {
            $this->clearCache($RowID, ['permissions']);
        } else {
            $this->updateUserCache($RowID, $Property, $Value);
        }
        if (!is_array($Property)) {
            $Property = [$Property => $Value];
        }
        $this->EventArguments['UserID'] = $RowID;
        $this->EventArguments['Fields'] = $Property;
        $this->fireEvent('AfterSetField');
        return $Value;
    }

Usage Example

Example #1
0
define('ACC', true);
require '../system/init.php';
//显示user注册页面
$msg = '';
//返回到前台的信息
$user = new UserModel();
$data = $user->_autofill($_POST);
//检测内容
/*
username: 4-20
password: 非空
email: 有email格式
username是否重复
*/
if (!$user->_validate($data)) {
    list($error) = $user->getErr();
    $msg .= $error;
} else {
    $user->setField($user->showField());
    $data = $user->_facade($data);
    if (!$user->checkUser($data['username'])) {
        list($error) = $user->getErr();
        $msg = $error;
    } else {
        $user->reg($data);
        $msg .= "Register Sucessfully!";
    }
}
include '../view/front/msg.html';
//echo $user->add($data)? "s":"f";
UserModel