我试图找出如何理解 *Jamie Rumbelow 的 MY_Model* 的使用,特别是如何实现这个想法。
我正在把一个游戏应用程序放在一起。有很多用户和很多角色。每个用户可以有多个角色,但只有每个角色可以由一个用户控制。我有一个用户表,其中有一个名为default_character
. 这是由字符的 id 字段表示的外键。
在我的代码中,我使用以下函数调用来获取当前登录的用户。
$user_data = $this->user->get_by('username', $post_username);
我想做的是,当我这样做时,它会从 default_character 字段中添加整数值,而不是我希望它去获取该字符的名称。这会是什么样子?
编辑 :
出于某种原因,在尝试swatkins下面的答案后,它仍然只显示数据库中的数字字符串值。我想要做的是用它从字符表中获取字符名称。
表
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_Controller 中加载)
<?php
class User_model extends MY_Model
{
public $primary_key = 'user_id';
public $has_many = array('characters' => array('model' => 'character_model' ));
public function __construct()
{
parent::__construct();
}
}
角色模型(application/modules/character/models/character_model.php)(在控制面板控制器中加载)
<?php
class Character_model extends MY_Model
{
public $belongs_to = array('user' => array('primary_key' => 'default_character_id'));
public function __construct()
{
parent::__construct();
}
}
我想知道这是否是数据库结构问题。关于这个话题还有更多的想法吗?任何帮助都会很棒。
我仍然对我做错了什么感到担忧。有谁能帮帮我吗?