CakePHP: kako namesto array-ev v templatih uporabiti objekte

Kar nekajkrat sem že zasledil da folk moti ker nam findAll(), in vse ostale funkcije modela, vrnejo array. Z Set::map() funkcijo lahko zadevo pretvorimo v objekte.

Recimo da imamo modele User, Profile in pa Comment. Med njimi imamo relacije. User ima en Profil (User $hasOne Profile, Profile $belongsTo User, Comment $belongsTo User, User $hasMany Comments).

V primeru da sedaj hočemo pogledati vse podatke od enega uporabnika z funkcijo:

  1. span style="color: #ff0000;">'id', $userID)); // Poiščemo podatke uporabnika v bazi
  2. $this->set('userData', Set::map($userData)); // Podamo podatke v template oz. view

Sedaj bomo v template dobili namesto arraya objekt. In sicer:

  1. $userData->id; // User id
  2. // Profile id
  3. $userData->Comment->id; // Comment id

Seveda spremenljivke objektov lahko uporabite katerekoli, pač imena polj v tabelah… Hotel sem povedati, da glavni objekt User ne kličemo recimo $userData->User->id ampak samo $userData->id, kar se mi zdi tudi logično.

Sicer mogoče tole vse skup ni kaj posebenga ampak mogoče pa komu pride prav 😉

Blaz

Blaz wrote 49 posts

Post navigation


Dodaj odgovor

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Time limit is exhausted. Please reload CAPTCHA.