0

モデルに次のコードがあります。

public function getSite()
{
    $this->load->library('site');
    $data = array();
    $str = "SELECT * FROM sitematrix_sites";
    $query = $this->getQuery($str);
    if($query){ 
        foreach($query->result() as $row){
            $site = new Site();
            array_push($data, $site->load($row));
        }

        foreach($data as $site){
            $site->data['database'] = $this->getDatabase($site->data['site_id']);
            $site->data['baseline'] = $this->getBaseline($site->data['site_id']);
        }

        return $data;
    }
    else{
        return false;
    }
}

そして、siteというクラスを作成しました。

class Site{

public $data;

public function __contruct(){

    $this->data = ArrayObject(array(), ArrayObject::STD_PROP_LIST);

    $this->data['site_id']                      =   '';
    $this->data['site']                         =   '';
    $this->data['site_code']                    =   '';
    $this->data['tc_10']                        =   array();
    $this->data['tc9x']                         =   array();
    $this->data['tc8x']                         =   array();
    $this->data['tc2008']                       =   array();
    $this->data['eng_2005']                     =   array();
    $this->data['database']                     =   array();
    $this->data['baseline']                     =   array();

ただし、次のエラーが発生します。

<p>Severity: Notice</p>
<p>Message:  Trying to get property of non-object</p>
<p>Filename: models/sitematrix_model.php</p>
<p>Line Number: 77</p>

何かご意見は?$site->data->databaseasとasのいずれかでこれらの値にアクセスしようとしまし$site->data['database']たが、両方とも機能しません。

line 77:  $site->data['database'] = $this->getDatabase($site->data['site_id']);

関数getDatabase:

public function getDatabase($id){
    $database = array();
    $str = "SELECT * FROM site_database where site_id='$id'";
    $query = $this->getQuery($str);
    if($query){
        foreach($query->result() as $row){
            array_push($database, $row->name);
        }
    }

    return $database;
}

関数getQuery:

public function getQuery($str){
    $data = array();
    $query = $this->db->query($str);

    if(!$query || $query->num_rows() == 0){
        return false;
    }
    return $query;
}

ありがとう

4

2 に答える 2

1

調査を行ったところ、それはで$siteはなくSite、配列であることがわかりました。

Array ( [site_id] => 1
[site] => Ames
[site_code] => ame
[windows_ref_unit_location] => \\plm\amnas\tc_ref
[unix_ref_unit_location] => /tc_ref
[windows_rte_location] => \\plm\amnas\tc_rte
[unix_rte_location] => /tc_rte
[windows_toolbox_location] => &lt;path-to-local-toolbox&gt;
[unix_toolbox_location] => /tc_ref/TOOLBOX
[UGS_LICENSE_SERVER] => 28000@cinxflex1,28000@cinxflex2,28000@cinxflex3
[UGII_LICENSE_FILE] => 27000@cinxflex1,27000@cinxflex2,27000@cinxflex3
[unix_dev_units] => /tc_work
[unix_devop_path] => /usr/site/devop_tools
[netapp_filer] => \\plm\amnas
[perforce_proxy_path] => /p4p/p4p_cache
[primary_contact] => Philomena Siddle
[secondary_contact] => Mathieu Sarrazy
[num_users] => 7
)

したがって、のようなものはありません$site->data['site_id']が、$site['site_id'];

于 2012-06-14T22:48:16.960 に答える
0

私はあなたのエラーメッセージがについて不平を言っているとかなり確信しています

$ this-> getDatabase

$ site->アスペクトではなく、その行の一部です。

これらの関数はすべて、クラスサイトではなく、モデルにありますか?

モデルで作業しているとき、$this->はそのクラスの関数と変数に固執する必要があります

于 2012-06-14T22:26:48.107 に答える