我的具体5.6.3.1网站已公开注册。我有一个名为&#34的属性;我是一名大使",这是一个在注册和个人资料中显示的复选框。
我的问题是我需要显示这个特定属性,并且可以在特定页面内进行编辑。
对于Eg:我有一个名为Sing up as Ambassador的页面,当我转到此页面时,我需要显示这个特定的复选框,用户可以启用/禁用它并保存它。(与配置文件编辑相同)。有人帮我吗?
答案 0 :(得分:2)
因此,对于这个问题,我们需要完成一些部分。
如何确定当前登录的用户?
$user = new User();
$user_info = UserInfo::getByID($user->getUserID());
如何获取属性值?
$user_info->getAttribute('my_attribute_handle');
如何设置属性值?
$user_info->setAttribute('my_attribute_handle', $value);
那么在我的单页查看方法中,我会有类似的内容:
public function view()
{
$user = new User();
$some_attribute = false;
if ($user->isLoggedIn()) {
$user_info = UserInfo::getByID($user->getUserID());
$some_attribute = $user_info->getAttribute('some_attribute');
}
$this->set('some_attribute', $some_attribute);
}
然后在我的单页查看文件中,我有:
<input type='checkbox' value='1' name='some_attribute' <?= $some_attribute ? 'checked' : '' ?> />
我的表单最终提交的地方,我会这样做:
$user = new User();
if ($user->isLoggedIn()) {
$user_info = UserInfo::getByID($user->getUserID());
$user_info->setAttribute('some_attribute', $_REQUEST['some_attribute'] == 1);
}