2

我正在使用 jamie Rumbelow 的 MY 模型来更好地处理我的应用程序。

https://github.com/jamierumbelow/codeigniter-base-model

MY_model 是相同的,除了我添加了一个变量来定义数据库中的项目是否被标记为软删除。受保护的 $soft_delete_value = 3;

我只定义了那个变量,还没有改变他的代码来解释这个值。

我有两件事想用这个标题模型做,我需要帮助理解。

Titles Table - title_id, title_name, title_status_id
Title_Statuses_Table - title_status_id, title_status_name

我想要它做的是检索所有 title_status_id 为 1 和 2 和 3 的行,因为软删除值与 MY 模型中的默认设置不同。我还想拥有的是它返回状态名称而不是返回整数。

预期成绩:

包含 title_id、title_name、title_status_name 的对象数组,其中标题的状态 ID 为 1、2 或 3。

测试

$titles = $this->titles_model->get_all();
echo "<pre>";
print_r($titles);
echo "</pre>"; 

实际结果:

SELECT *
FROM (`titles`)
WHERE `title_status_id` =  0

<pre>Array
(
)

我的代码

class Titles_model extends MY_Model 
{
    /* --------------------------------------------------------------
    * VARIABLES
    * ------------------------------------------------------------ */

    /**
    * This model's default database table.
    */
    public $_table = 'titles';

    public $primary_key = 'title_id';

    /**
    * Support for soft deletes and this model's 'deleted' key
    */
    public $soft_delete = TRUE;
    public $soft_delete_key = 'title_status_id';
    public $soft_delete_value = 4;
    public $_temporary_with_deleted = FALSE;

    public function __construct()
    {
        parent::__construct();
    }
}  

还有其他人有任何其他想法/建议吗?

编辑:

我整天都在试图解决这个问题,但遇到了死胡同。

4

1 回答 1

3

好吧,这将是您获得预期结果所需的功能

      $this->db->select('
                titles.*,
                status.*,
                 ')
                ->join('status s', 'titles.title_status_id = s.title_status_id', 'LEFT')
                ->where('titles.title_status_id', 1)
                ->or_where('titles.title_status_id', 2)
                ->or_where('titles.title_status_id', 3)
                ->from('titles')
                ->get()
                ->result_object();
于 2013-01-31T10:22:36.843 回答