1

複数のテーブルが含まれている場合、モデルにどのように名前を付ける必要がありますか?

例えば、

//学生テーブル用

class Students extends Model{

     function addStudent(){  
        //code  
     };

     function editStudent($id){  
        //code  
     }; 

     function deleteStudent($id){  
        //code  
     }; 

     function viewStudent($id){  
        //code  
     }; 

     function viewStudents(){  
        //code  
     };
}

//教授テーブル用

class Professors extends Model{

     function addProfessor(){  
        //code  
     };

     function editProfessor($id){  
        //code  
     }; 

     function deleteProfessor($id){  
        //code  
     }; 

     function viewProfessor($id){  
        //code  
     }; 

     function viewProfessors(){  
        //code  
     };
}

学生とその教授を表示したい場合、別のモデルを次のように作成する必要があります。

 class StudentsProfessors extends Model{
       function get_students_professors(){
          // $query = SELECT s.name, p.name FROM students AS s, professors AS p WHERE s.id=p.id 
       }
 }

または、上記の方法で、関数 get_students_professors をStudentsクラスまたはProfessorsクラスに記述できます。

ベストプラクティスは何ですか?

4

2 に答える 2

1

CodeIgniters の MVC 実装は、[冒涜が削除された] の 1 つの大きな束です。私が提案したいのは、関係を自分で組み立てることです。教授モデルのインスタンスを学生モデルに逆さまに渡します。

$this->student->with('professor')->get(1); を実行できます。または似たようなもの。

これを実現するには、CI のモデルをハックする必要があるかもしれません。

ちょっと堅実に見えるいくつかの実装がすでにあります(ドキュメントからのみ見られます)。これを見てください: https://github.com/jamierumbelow/codeigniter-base-model

于 2013-08-09T09:47:44.510 に答える