老大,现在已解决js通过JSON方式获取控制器方法中的数据。但在控制方法中调用辅助函数不知该如何传递变量 ...
你说传参?直接传不就可以吗? Hex 发表于 2018-8-10 00:32
你说传参?直接传不就可以吗?
是辅助函数中的参数向控制器中的方法传递,请原谅我无知。 dzwlxk 发表于 2018-8-10 20:09
是辅助函数中的参数向控制器中的方法传递,请原谅我无知。
辅助函数是控制器调用的,然后辅助函数只能返回值,没法传参给控制器,因为并不是辅助函数去调用控制器。 看了一下你的 get_auth 并没有什么实际作用啊?那你写这个 helper 的意义是什么?一般来说 helper 只用于视图里。你要做的是在钩子里验证权限,然后让控制器拿到验证结果吗? 本帖最后由 dzwlxk 于 2018-8-12 09:47 编辑
Hex 发表于 2018-8-11 21:26
看了一下你的 get_auth 并没有什么实际作用啊?那你写这个 helper 的意义是什么?一般来说 helper 只用于视 ...
老大,我把我的思路给你汇报一下:
这个权限控制包是从论坛下的,它用hook判断权限,然后根据结果调用helper里的error_redirct做页面跳转。前端用的是H-ui,若没权限,它会把选项卡框架一并弹出。我准备改一下。在点击菜单时,若有权限则调用页面,没权限则只会弹出一个“无权限”的对话框,即阻止调用Hui_admin_tab(this)。
原码如下:
$(".Hui-aside").on("click",".menu_dropdown a",function(){
var v=this;
$.get("http://localhost/zkzdemo/index.php/adminman/get_power",function(data){
if(data==1){
console.info(data);
Hui_admin_tab(v);
}
else if(data==0)alert("无权限");
});
});
data即为从后台获取的权限值,也可以说是从控制器拿到权限叛断值。不知道说清楚没有?
helper里:
a{
return json;
}
control里:
echo a();
本帖最后由 dzwlxk 于 2018-8-12 10:58 编辑
zhaohua0317 发表于 2018-8-12 10:11
helper里:
a{
return json;
hook里:
//验证ACL权限
if(!rbac_conf(array('ACL',$directory,$controller,$function))){
redirct(0);
die();
}
helper里:
if (! function_exists ( "redirct" )) {
function redirct($right) {
//error_log($right,3,"c:/errors.txt");
return (json_encode($right));
}
控制器里:
public function get_power(){
echo redirct(?);
}
这里参数值该怎样解决?redirct()分别在hook和控制器调用过。ajax能否直接调用helper? dzwlxk 发表于 2018-8-12 10:47
hook里:
//验证ACL权限
if(!rbac_conf(array('ACL',$directory,$controller,$function))){
你在 hook 里 die() 那程序就不会往下执行了呀,正常来说你也不应该在 hook 里去中断程序,你可能需要通过判断权限,转到不同的路由上,然后不同路由返回不同的 JSON。另外,helper 是无法直接访问的,必须套一个控制器,你可以只写一个用于 helper 的控制器。
页:
1
[2]