Özel sınıf / kitaplığında nesne olarak bir dizi tedavi Codeigniter

0 Cevap php

Benim Codeigniter sitesine (OpenSecrets.org veri ile etkileşim için kullanılan) bir üçüncü taraf API entegre çalışıyor ve değişken bir dizi olsa bir dizge olarak tedavi altına bir nesne hakkında bir hata alıyorum tutuyorum.

Orijinal api burada mevcuttur: https://github.com/bpilkerton/php-crpapi/blob/master/crpapi.php.

Benim modifikasyonlar burada mevcuttur: http://pastebin.com/HmZyhQJR.

Dosya ve sınıf bildirimi maç ve hem ilk harfler var ki ben sınıf modifiye ettik, ve sadece sınıf benim denetleyicisi çağrıldığında ayarlanır parametrelerden biri dizisini kabul eder ki ben kurucu modifiye ettik.

Benim değiştirilmiş kod ilgili bölümü aşağıdadır. Ben özel fonksiyon loadParams ilk satırında ve o işlev içinde foreach döngüsü için hatalar alıyorum. İlk hata:

Object of class stdClass could not be converted to string

Ve ikinci:

Invalid argument supplied for foreach()

Custom class:

class Crp {

function __construct($params) {

    $this->apikey = "a04a90aa18e9e482b3ff2318d313db53";
    $this->baseurl = "http://api.opensecrets.org/";
    $this->output = "json";

    //Allow output type to be overridden on object instantiation
    $this->output = isset($params['output']) ? $params['output']: $this->output;
    $this->method = $params['method'];
    self::loadParams($params);

    /*$this->fileHash = md5($method . "," . implode(",",$params));
    $this->cacheHash = "dataCache/" . $this->fileHash;
    $this->cacheTime = 86400; #one day*/

}

private function loadParams($params) {
    $this->url = $this->baseurl . "?method=" . $this->method .
    "&apikey=" . $this->apikey;

    foreach ($params as $key=>$val) {
        $this->url .= "&" . $key . "=" . $val;
        $this->$key = $val;
    }

    return;
}

And the call in the Controller

$crp_id = $this->_getRefId($id,'indiv','crp');
$this->load->library('crp',array("method" => "candContrib","cid"=> $crp_id,"cycle"=>"2010","output"=>"json"));
// grabs the CRP id from my reference table; have tested and correctly returns string
function _getRefId($id,$type,$src)
{
    switch ($src) {
        case 'crp':
            $field = 'ref_id as id';
            break;
    }
    switch ($type) {
        case 'indiv':
            $this->db->select($field);
            $this->db->where('ref_id',$id);
            $query = $this->db->get('my_ref_table');
            if($query->num_rows() > 0)
            {
                $query = $query->row();
                return $query->id;
            }
            break;
        case 'org':

            break;
    }
}

Ben CI özel kütüphaneler oluşturulması anlamak yoldan, bu benim yeni örnekleme parametrelerin bir dizi geçmek nasıl olduğunu ve sadece bir dizi kabul eder. Herhangi bir düşünce?

0 Cevap