2017-05-16 4 views
3

の代わりにオブジェクト:戻りアレイは、私はCodeIgniterのモデルを持ってCodeIgniterの3中の配列​​の配列

<?php 
class Person_model extends CI_Model { 
    public function __construct() { 
     $this->load->database(); 
    } 

    public function list_persons() { 
     $query = $this->db->get('persons'); 
     return $query->result_array(); 
    } 

    public function foobar() { 
     return 'Custom function here'; 
    } 
} 
?> 

機能list_persons()はかなり自己説明します。 personsデータベーステーブルからすべての結果を取得します。

このように、現在、それは、アレイのリストで結果を返します。

array(2) { 
    [0] => array(3) { 
    ["id"] => string(1) "1" 
    ["first_name"] => string(6) "Test 1" 
    } 
    [1] => array(3) { 
    ["id"] => string(1) "2" 
    ["first_name"] => string(6) "Test 2" 
    } 
} 

はそれを返すように機能list_persons()を聞かせすることは可能です:

array(2) { 
    [0] => Person_model { 
    "id" => 1 
    "first_name" => "Test 1" 
    } 
    [1] => Person_model { 
    "id" => 2 
    "first_name" => "Test 2" 
    } 
} 

私はカスタム関数を使用できるように私はPerson_modelに次のように書いています:

foreach($this->person_model->list_persons() as $person) { 
    echo $person->foobar(); 
} 

ありがとうございましたadv ance。このような

答えて

5

更新しますlist_person()方法($query->result()を使用):

public function list_persons() { 
    $query = $this->db->get('persons'); 
    return $query->result('Person_model'); 
} 
+0

ニース。しかし、返されるクラスは 'Person_model'の代わりに' stdClass'であり、 'foobar()'は呼び出せません。アドバイスはありますか? – Raptor

+1

私は答えを更新しました。モデルクラスを表す文字列を '$ query-> result()'に渡します。たとえば、 '$ query-> result( 'Person_model')'はモデルクラスに変換します。 –

+0

完全に動作します。ありがとう! – Raptor

関連する問題