0

前に質問されていたらすみませんが、検索するのに適切なキーワードが見つかりませんでした。私は私の問題を説明しようとします。

「ilan」と「places」という名前の DB テーブルがあります。「ilan」テーブルには、場所の ID (都市、地区、通り) を保持する 3 つの列があります。

そして、 ilan.name と関連の places.name をビューに出力する方法を学びたいです。

私は次のようなコントローラを持っています:

class Estate_control extends CI_Controller{

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

function index(){

    $this->load->helper('url');
    $this->load->model("estate_model");

    $data['tum_bayiler'] = $this->estate_model->tum_bayileri_listele();
    $data['sonEmlaklar'] = $this->estate_model->sonEmlaklar();      

    $this->load->view("index",$data);

}
}

私は次のようなモデルを持っています:

class Estate_model extends CI_Model{

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

function sonEmlaklar(){
    $query = $this->db
            ->select()
    ->from("ilan")
    ->order_by("gunceltarih DESC")
    ->limit(36)
    ->get();

    return $query->result();            
}

}

私のDBテーブル:

宜蘭:

ilan_id, gunceltarih, ... , ilan_city (場所テーブルの ID), ilan_district (場所テーブルの ID), ilan_street (場所テーブルの ID), ...

場所:

場所 ID、場所名、...

ilan.name および関連の places.nameをビューに表示するために何をすべきかについてのアイデア。

みんな、ありがとう。

4

2 に答える 2

1

これはコードの関連部分だと思います

$query = $this->db
        ->select("ilan.*, places.name")
->from("ilan")
->join('places', 'places.id = ilan.ilan_city OR places.id = ilan.ilan_district OR places.id =ilan.ilan_street')
->order_by("gunceltarih DESC")
->limit(36)
->get();
于 2012-05-23T17:44:57.580 に答える
0

私は抜け道を見つけました。それがどれほど効率的かはわかりませんが、私にとってはうまくいきます。

次のように、コントローラーのインデックス関数内に関数を作成しました。

function index(){

    //whatever here

function getPlace($e){
    $ci = get_instance(); //to get properties of parent class
    $query = $ci->estate_model->ilanSehir($e);


    return $query;
}   

    //whatever here

}

次に、次のようにモデル内に関数を配置します。

function ilanSehir($e){ 
$query = $this->db->select("*")
    ->from("places")
    ->where("places_id",$e)
    ->get();
 return $query->row();    //This will return one row so it must be row() instead of result()    

}

そして、私の見解では、必要なパラメーターを使用して関数を呼び出しました。

<?php $place = getPlace($ilan->ilan_city);
      echo $place->places_name;
?>

前に言ったように、それがどれほど効率的かはわかりませんが、私にとってはうまくいきました。それが役に立てば幸い。どこか間違っている場合は、警告してください。

答えてくれた皆さんありがとう

于 2012-05-24T01:21:35.877 に答える