如何在codeigniter中将数组从一个类控制器传递到另一个类控制器

时间:2015-11-12 06:53:58

标签: php codeigniter frameworks

我有两个控制器,如doc.php,控制器文件夹中的user.php和视图文件夹中的registration.php,它们都有注册表单。 我希望通过user.php将registration.php中的注册信息传递给doc.php控制器。 我怎样才能做到这一点?需要帮助。

2 个答案:

答案 0 :(得分:0)

在CodeIgnitor中,您通常使用会话对象在控制器之间传递数据。例如:

// initialise the session object
$this->load->library('session');

// save the array to the session
$this->session->set_userdata('reg_info', $reg_info);

// retrieve the array in the other controller:
$this->session->userdata('reg_info');

有关CodeIgnitor会话对象的更多信息,请参阅docs

答案 1 :(得分:0)

您的codeigniter版本是什么? 2.x或3.x?

尝试使用会话来保存您的阵列。

要在控制器构造函数中手动初始化Session类,请使用以下方法:

public ActionResult QuickEdit(int pk, string name, string value)
{
    var pext = Db.ProjectExtensions.Find(pk); 
    if (ModelState.IsValid)
    {
        var propertyInfo = pext.GetType().GetProperty(name); //get property
        if (propertyInfo != null)
                {
                    var type = Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType;
                    var safeValue = (value == null) ? null : Convert.ChangeType(value, type);
                    propertyInfo.SetValue(pext, safeValue, null);
                }
        Db.SaveChangesWithHistory(LoggedEmployee.EmployeeId);

        return Content("");
    }
}

加载后,Sessions库对象将可用:

$this->load->library();

您可以使用以下代码设置会话名称:

$this->session

使用此功能在会话中添加项目:

$this->session->your_session_name;

要检索您的会话,请使用以下代码:

$this->session->your_session_name('item_one');

Check this代码为CodeIgniter 3.X

CodeIgniter 2.X

Check this