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'));
}