Autor Zpráva
subzero11
Profil *
Zdravim panove,
nevite mi prosim poradit nekdo s problemem.. Pouzivam Codeignter framework.. no a vytvoril jsem si model, kterym bych chtel ulozit data do pole. Je to klasicka tabulka, id, rodic, zprava.

takhle vypada muj model

class Zpravy_model extends CI_Model {
  private $zpravyArray = array();

    function get_vsechny_zpravy($rodic = 0)
    {
        $query = $this->db->where('rodic', $id)->get('zpravy');

        if ($query->num_rows() > 0) {
            foreach ($query->result() as $zprava)
            {
                $this->zpravyArray[$zprava->id] = $zprava;
                $this->zpravyArray[$zprava->id]->deti= $this->get_vsechny_zpravy($zprava->id);
            }
        }

        if (!empty($this->$zpravyArray)) return $this->zpravyArray; else return NULL;
    }
}


tenhle kod mi nefunguje, .. script se zacykli.. Ale kdyz odstranim u pole $this-> a pouziju jen $zpravyArray ve vsech pripadech kdy pouzivam tohle pole, tak vse funguje jak ma... nevite nekdo v cem je problem? Pripadne co v mem scriptu upravit? Moc dekuji.
tany
Profil *
no první věc co se mi tam rozhodně nelíbí, je rekurze bez kontroly zacyklení ..
když už rekurzi, tak bych ji stavěl opravdu jinak, get_vsechny_zpravy by jen obsluhovala rekurzi.
class trida extends CI_Model {
protected $_tem;
public function get_vsechny_zpravy()
{
$this->little_rekurze;
return $this->_temp;
}
protected function little_rekurze($rodic = 0)
{
..rekurze..
subzero11
Profil *
Dekuji za postreh.
+
prikladam vysvetleni oneho problemu:
"Your method is returning a class property, which you then insert into that same property due to your recursive calls. If you don’t use $this, it’s a function local variable, so you don’t have that issue."

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0