1

参照: http://www.grocerycrud.com/documentation/options_functions/set_model

私はこのような2つのテーブルを持っています:

[tblFitnessClasses] id uid タイトル 説明 場所

[tblFitnessClassDateTimes] owner_uid startDate endDate startTime endTime 日繰り返し

基本的に、テーブルは次のようになります。

(uid - hidden)  | Title     | Description   | Location  | Start Date    | End Date     | Start Time | End Time | Days      | Reccurence
                Swim Lesson  Level 1         Gym         05/04/2012     NULL            12:30       1:30        Mon,Wed,Fri   2  

私のメインコントローラーの一部には、これがあります:

     function fitnessSchedule()
{
    $this->config->set_item('url_suffix', '');
    $crud = new grocery_CRUD();
    $crud->set_table('tblFitnessClasses');
    $this->load->model('schedule_model');
    $this->schedule_model->join_table('tblFitnessClasses','tblFitnessClassDateTimes');
    $crud->columns('title','description','location','startEventDate','endEventDate','startTime', 'endTime', 'days', 'recurrence', 'finalDate);
    $crud->display_as('title','Event')
         ->display_as('description','Description')
         ->display_as('location','Location')
         ->display_as('startEventDate','Start Date')
         ->display_as('endEventDate','End Date')
         ->display_as('startTime','Start Time')
         ->display_as('endTime','End Time');
    $crud->required_fields('title','location');
    $crud->set_subject('Event');             

    $output = $crud->render();
    $this->_example_output($output);     
}

私のモデルでは、これがあります:

    <?php
class schedule_model extends CI_Model
{
        public function join_table($table1,$table2)
        {
          $this->output->enable_profiler(TRUE);//Turns on CI debugging

          $this->db->select("*");
          $this->db->from($table1);
          $this->db->join($table2, $table1.".uid". "=".$table2.".owner_uid"); // Join classes and class date times by UID

          $results = $this->db->get()->result();
            return $results;
        }
}
?>

このコードを実行すると、必要なすべてのフィールドを含むテーブルが取得されますが、table2 (tblFitnessClassDateTimes) のフィールドにはすべての情報がありません。フィールドにはデータが入力されません。これに加えて、テーブルを編集することを選択した場合、編集可能な 1(tblFitnessClassses) にのみ移動します。

ここに画像の説明を入力 ここに画像の説明を入力

4

2 に答える 2

2

モデルを間違った方法でロードしています。実際、あなたは1つもロードしていません! grocery_CRUD作成したモデルではなく、新しいインスタンスを作成しているだけです。

$this->load->model('schedule_model');
$this->schedule_model->join_table('tblFitnessClasses','tblFitnessClassDateTimes');
于 2012-05-04T16:02:55.537 に答える