Php 与My_模型的关系

Php 与My_模型的关系,php,codeigniter,Php,Codeigniter,我试图了解如何理解杰米·鲁姆博罗的“我的”模型的使用,特别是如何实现这个想法 我正在组装一个游戏应用程序。有许多用户和许多字符。每个用户可以有许多字符,但只有每个字符可以由一个用户控制。我有一个用户表,其中有一个名为default\u character的字段。这是由字符的id字段表示的外键 在我的代码中,我使用以下函数调用来获取当前登录的用户 $user_data = $this->user->get_by('username', $post_username); 我想做的是,当

我试图了解如何理解杰米·鲁姆博罗的“我的”模型的使用,特别是如何实现这个想法

我正在组装一个游戏应用程序。有许多用户和许多字符。每个用户可以有许多字符,但只有每个字符可以由一个用户控制。我有一个用户表,其中有一个名为
default\u character
的字段。这是由字符的id字段表示的外键

在我的代码中,我使用以下函数调用来获取当前登录的用户

$user_data = $this->user->get_by('username', $post_username);
我想做的是,当我这样做时,它会从默认的字符字段中添加整数值,而不是我想让它得到该字符的名称。这是什么样子的

编辑:

由于某些原因,在尝试下面的swatkins答案后,它仍然只显示数据库中的数字字符串值。我想做的是使用它从characters表中获取character\u名称

桌子

user - user_id, username, default_character_id

characters - id, character_name

object(stdClass)#23 (12) {
    ["user_id"]=>
    string(5) "10003"
    ["first_name"]=>
    string(3) "tom"
    ["last_name"]=>
    string(8) "williams"
    ["username"]=>
    string(9) "twilliams"
    ["password"]=>
    string(40) "431db25cf8fe0ccf374365ae9c644c7bfdeb7399"
    ["password_hash"]=>
    string(11) "ed95d918116"
    ["email_address"]=>
    string(19) "twilliams@yahoo.com"
    ["status_id"]=>
    string(1) "2"
    ["lock_date"]=>
    string(19) "0000-00-00 00:00:00"
    ["default_character_id"]=>
    string(1) "1"
    ["created_at"]=>
    string(19) "2013-07-30 10:00:00"
    ["updated_at"]=>
    string(19) "0000-00-00 00:00:00"
}
用户模型(application/modules/User/models/User_Model.php)(加载到MY_控制器中)


假设您正确设置了关系,您可以使用
方法访问关系的子项:

因此,此博客获取id为
1
帖子,然后还获取
作者
评论数组
。您可以将它们作为父对象的属性访问

更新

您需要在模型中设置关系。因此,您需要设置
用户
角色
实体,如下所示:

class User_model extends MY_Model
{
  public $has_many = array('characters');
}

class Character_model extends MY_Model
{
  public $belongs_to = array('user' => array('primary_key' => 'default_character'));
}

很抱歉,这是我在StackOverflow中见过的最好的问题之一。我仍在努力解决这个问题,因为我不明白它如何知道如何使用users.default\u character with characters.id连接这两个。你告诉它如何连接这两个。我已经更新了我的答案,解释了如何建立这些关系。我很抱歉出于某种原因,我仍然在努力解决这个问题。我在上面做了一个编辑。好吧,当你这样做:
$user=$this->user\u model->with('character')->get(1);
---打印($user);
显示什么?它仍然显示整数值,并且没有得到它应该添加的字符的名称
<?php

class Character_model extends MY_Model 
{    
    public $belongs_to = array('user' => array('primary_key' => 'default_character_id'));

    public function __construct()
    {
        parent::__construct();
    }
}
// from the docs

$post = $this->post_model->with('author')
                     ->with('comments')
                     ->get(1);

echo $post->author->name;

foreach ($post->comments as $comment)
{
    echo $message;
}
class User_model extends MY_Model
{
  public $has_many = array('characters');
}

class Character_model extends MY_Model
{
  public $belongs_to = array('user' => array('primary_key' => 'default_character'));
}