andyzhu 发表于 2013-5-16 13:51:22

My_Controller extendsCI_Controller,我在 My_Controller 中的public 变量 ,如何在hmvc modules的Controller中访问 这个public 变量,请增加这个功能.

andyzhu 发表于 2013-5-16 13:56:07

如何 模块中的controllers 中 访问 全局变量

imhuzi 发表于 2013-5-21 14:39:14

本帖最后由 imhuzi 于 2013-5-21 18:37 编辑

加上HMVC后,原来的表单验证用不了了。我吧所有验证规则放在了:config/form_validation.php里,如下:$config = array(
    'account/signin/session'=>array(
      array(
          'field'=>'login_key',
          'label'=>'邮箱地址',
          'rules'=>'trim|required|valid_email|xss_clean',
      ),
      array(
          'field'=>'password',
          'label'=>'登录密码',
          'rules'=>'trim|callback_md5password_check|required',
      ),
    ),
    'app/permission/user/add'=>array(),
)account是controller,
account的代码如下:class Account extends CI_Controller {
    //put your code here
    function __construct() {
      parent::__construct();
      $this->load->model('Account_model');
      $this->load->library('form_validation');
    }

    publicfunction index(){
            $this->load->view('account/signin');
    }

    /**
   * 登录
   */
    public function signin($slug = '') {
      if ($slug !== 'session') {
            $this->load->view('account/signin');
      } else {
            //登录表单验证
            $this->load->helper('url');
            $valid_flag = $this->form_validation->run();

            //登录处理
            $signin_flag = false;
            if($valid_flag!=FALSE){
               $signin_flag = $this->Account_model->do_signin();
            }
         
         if (!$valid_flag || !$signin_flag) {
                //设置提示信息并跳转
                $this->session->set_flashdata('validation_error_messages',validation_errors_array());
                setFlash_Message('error', 'Email Account or Password error.');
                redirect('/account/signin');
            } else {
                redirect('/app/');
            }
      }
    }
   
    public functionsignout(){

    }

    /**
   * 检查md5密码是否正确
   * @param type $str
   * @return boolean
   */
    public function md5password_check() {
      $pass = $this->input->get_md5PasswordValue('password');
      if ($pass == -1 || empty($pass)) {
            $this->form_validation->set_message('md5password_check', '密码不能为空');
            return FALSE;
      } else {
            return TRUE;
      }
    }
}我跟踪调试后发现:在CI_Form_validation.php里的run方法去不到验证规则,不知道是什么问题,Hex大神...

fengdie 发表于 2013-6-25 04:50:09

不错 、这个很像phpcms的modules

kinwyb 发表于 2013-7-1 13:23:48

学习,顺便标记一下以便以后查看

Hex 发表于 2013-7-1 13:28:31

imhuzi 发表于 2013-5-21 14:39 static/image/common/back.gif
加上HMVC后,原来的表单验证用不了了。我吧所有验证规则放在了:config/form_validation.php里,如下:accou ...

表单验证类只能关联到控制器/方法吧 你这个已经是三级了,不能关联到参数,你再看看。

kinwyb 发表于 2013-7-2 11:22:04

问下这里是不是写错了

我这么写提示错误找不到module_url
改成
$this->load->module_url('要访问的方法名/参数1/..../参数n', '控制器名');
才不会报错。
但是这么写有会出现
这该怎么解决?直接用site_url好像不返回内容

huadie07 发表于 2013-8-6 11:49:31

学习一下

Hex 发表于 2013-8-7 14:42:47

kinwyb 发表于 2013-7-2 11:22 static/image/common/back.gif
问下这里是不是写错了

我这么写提示错误找不到module_url

这是用在视图里的,我在说明里也说明要在视图里使用。
不能用在控制器中。
本身我写的 HMVC 就是用在视图里的,类似 widget 的概念。

kinwyb 发表于 2013-8-20 08:49:17

Hex 发表于 2013-8-7 14:42 static/image/common/back.gif
这是用在视图里的,我在说明里也说明要在视图里使用。
不能用在控制器中。
本身我写的 HMVC 就是用在视图 ...

额,谢谢指导
页: 13 14 15 16 17 18 19 20 21 22 [23] 24 25 26 27
查看完整版本: [3.0.6]为 CI 增加 HMVC 支持【更新日期:2016.4.25】