将我的方法分组到一个模型中的正确方法是什么?

What is the right way to group my methods inside a single model?

对不起这个标题,可能我描述的不太好。但这是我想要的:

现在,如果我创建一个模型 m.php 并使用以下代码将其放入模型文件夹中:

class m extends CI_Model {

  public function username() {
    print "john doe";
  }

  public function password() {
    print "ABC123";
  }

}

现在,我可以在控制器中简单地执行以下操作:

$this->load->model("m");
$this->m->username(); // prints john doe
$this->m->password(); // prints ABC123

现在我需要做的是以一种可以调用上面的方法的方式来实现它:

$this->m->genralinfo->username(); // prints john doe

$this->m->privacy->password(); // prints "ABC123"

我怎样才能做到这一点?我想这样做是为了将特定于某些事物的方法组合在一起,这有助于我更好地构建代码。

**我知道可以为每组方法创建一个新模型,但我只想将与用户相关的所有内容都保留在一个模型中**

这甚至可以使用单个模型吗?

创建一个获取参数的函数 'general-info' 和 'privacy'。 在控制器中调用它。

$m->generalinfo('username');

在模型中

public function generalinfo($v='') {
    switch($v){
     case 'username':
        $ret=$this->username; //you would have to fill the object first
        break;
     case 'name':
        $ret=$this->name; //same here
        break;
     default:
        $ret=Array();
        $ret['username']=$ret=$this->username;
        $ret['name']=$ret=$this->name;
   }
    return $ret;
} 

并处理视图中的输出。此示例将为您提供一个包含您请求的特定信息的字符串。或者所有通用数据的数组。 您将不得不关心这些不同的情况。例如,检查控制器中的 return。

但是通过这种方式,您还可以进行 ajax 调用,并将 return 转换为 JSON 并将其推送到模式或其他任何内容。

知道了。我把它放在模型里面

public $info;
public function __construct() 
{ 
    parent::__construct();
    $this->info = (object) array('foo' => 'bar', 'property' => 'value'); 
} 

然后简单地:

echo $class->obj->foo;//outputs bar  

我想你想要这样

class m extends CI_Model
{
    public $genralinfo;
    function __construct()
    {
        parent::__construct();
        $this->genralinfo=new Genralinfo();
    }

}
class Genralinfo
//class Genralinfo extends CI_Model//you may extend CI_MODEL too
{
    public function username() {
        print "john doe";
    }

    public function password() {
        print "ABC123";
    }

}