主题:从数据库中获取当前用户(某些特定字段)数据并将其显示在欢迎屏幕上。
UI的说明:在注册页面上,会出现一个下拉列表。当用户选择一个选项时,它将触发一个事件来获取用户图像以显示在欢迎页面上。
我在(pages.process)模块中放入了以下代码
function getUserId($iUserId)
{
$aRows = $this->database()->select('p.image_path')->from($this->_sTable, 'p')
->Join(Phpfox::getT('user') , 'u', ' p.page_id = u.college_name') ->
where('u.college_name = p.page_id AND u.user_id = ' .
(int)$iUserId)->execute('getRows');
return $aRows;
}
数据将从用户& Pages Table,将用于显示用户图像。请建议。
答案 0 :(得分:1)
有一项服务可以通过
获取用户详细信息$user_id = Phpfox::getUserId();
$aRow = Phpfox::getService('user')->getUser($user_id);
这将为您提供用户详细信息
答案 1 :(得分:0)
为了提高性能,请检查您正在更改的页面是否已经拥有您需要的信息,如果页面在创建时已经具有该信息并且您可以将其存储在javascript中,则可能不需要在ajax中查询数据库。
既然你提到了一个ajax情况(在下拉时触发一个事件来查询数据库),那么你需要包含一个JS文件(我的建议,因为你可以从插件中执行此操作),还有其他方法,但这是在我看来最好的。 如果您需要帮助,请阅读有关插件的my article。我的建议是编写一个插件,将你的JS文件包含在页面中。
在JS文件中,您可以调用"控制器功能"像这样:
$.ajaxCall('mymodule.myfunction', 'param1=value1¶m2=value2');
这将运行函数" myfunction"在文件/module/mymodule/include/component/ajax/ajax.class.php中 从这个ajax文件中你可以调用"服务功能"并将代码发送到浏览器,例如:
$value = Phpfox::getService('mmodule')->someOtherFunction();
$this->call('alert("' . $value . '");');
希望有所帮助