4

CI では、モデル同士をどのように関連付けますか?現在、Users、UsersDepartment、UsersToDepartment、UserStatus の 4 つのモデルがあり、すべてのデータを取得できるようにするには、これら 4 つのモデルを結合する必要があります。

ユーザーテーブルからすべてのユーザーデータを選択するために、コントローラーに次のコードがあります。

function view($user_id){
                 $data['user'] = $this->User_model->get_by_id($user_id)->row();
}

Users テーブルに保存されている user_status は status_id のみであるため、UserStatus テーブルに接続して、users_status_id と同等の名前を取得する必要があります。ユーザーが所属するグループのリストを知る必要があります。したがって、Users.userid に基づいて UsersToDepartment テーブルから取得する必要があります。次に、UsersDepartment テーブルで同等のグループ名を取得します。さらに説明するには、私の図を参照してください。 ここに画像の説明を入力

ネイティブ PHP では、これは join を使用して実行できます。それはCIでどのように行われますか?

私はyiiで知っています、あなたはこのようにすることができます

$posts=Post::model()->with(
'author.profile',
'author.posts',
'categories')->findAll();

これはCIでも可能ですか?

4

4 に答える 4

8

あなたが持っていて、彼らのIDを使ってtable_one参加したい例table_two

$this->db->select('columns');
$this->db->from('table_one');
$this->db->join('table_two', 'table_two.id = table_one.id');

//then do the query

より完全なチュートリアルについては、以下のリンクを参照してください。

https://www.codeigniter.com/userguide2/database/active_record.html

于 2013-03-10T15:59:44.807 に答える
3

code igniter は、php の ORM フレームワークではありません...

ORM フレームワークのように扱うことはできません (Laravel は ORM フレームワークの良い例です)。

ただし、クエリで結合することでそれをシミュレートできます。

この作業は、他のモデルのデータを取得するだけで、それらのモデルのオブジェクトを取得するのではありません...

于 2015-09-17T14:16:43.683 に答える
0

Active Record$this->db->join();の見出しを参照してください: CodeIgniter

ここでは codeigniter があまり良くないことを知っています。だから私はいつもそれよりも Yii を好みます。

于 2013-12-02T12:47:12.127 に答える
-3

この結合テーブルのクエリを使用してみてください

Select a.*,b.*
from table_one a
inner join table_two b where b.id=a.id
于 2013-03-11T06:24:37.310 に答える