如何在phpfox中获取当前用户数据

主题:从数据库中获取当前用户(某些特定字段)数据并将其显示在欢迎屏幕上。

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; } 

数据将从用户和页面表中选择,并将用于显示用户图像。 请建议。

有一项服务可以通过is获取用户详细信息

 $user_id = Phpfox::getUserId(); $aRow = Phpfox::getService('user')->getUser($user_id); 

这将为您提供用户详细信息

为了提高性能,请检查您正在更改的页面是否已经拥有您需要的信息,如果页面在创建时已经具有该信息并且您可以将其存储在javascript中,则可能不需要在ajax中查询数据库。

既然你提到了一个ajax情况(在下拉时触发一个事件来查询数据库),那么你需要包含一个JS文件(我的建议,因为你可以从插件中执行此操作),还有其他方法,但这是最好的我的看法。 如果您需要帮助,请阅读我关于插件的文章 。 我的建议是编写一个插件,在页面中包含你的JS文件。

在JS文件中,您可以像这样调用“控制器函数”:

 $.ajaxCall('mymodule.myfunction', 'param1=value1&param2=value2'); 

这将在文件/module/mymodule/include/component/ajax/ajax.class.php中运行函数“myfunction”。从这个ajax文件中,您可以调用“服务函数”并将代码发送到浏览器,例如:

 $value = Phpfox::getService('mmodule')->someOtherFunction(); $this->call('alert("' . $value . '");'); 

希望能帮助到你