CakePHP bir model veri almak için en etkili yolu nedir?

3 Cevap php

Ben CakePHP yeniyim ve hala temel bulmaktan. Şu anda (başka bir bağlı model içinde gelen) bir modelden bir veya daha fazla alan elde etmek için süreci ile şaşırtan biraz değilim.

Şimdiye kadar, ben bu var:

$this->user->id = 123;
$this->User->read();
$field1 = $this->User->data['User']['field1'];
$field2 = $this->User->data['User']['field2'];

Hangi çok ayrıntılı görünüyor.

Ve bu:

$this->user->id = 123;
$field1 = $this->User->field('field1');
$field1 = $this->User->field('field2');

Daha uzun görünüyor, ama iki sorgularda sonuçlanır.

I used bu durumlarda ne yapılması, ön-Kek:

$this->User = new User(123);
$field1 = $this->User->field1;
$field2 = $this->User->field2;

ya da ben yazarak gibi hissettim:

this->User = new User(123);
$field1 = $this->User->getFieldOne();
$field2 = $this->User->getFieldTwo();

Yani, soru: Bu görevi gerçekleştirmek için tarafından CakePKP'deki bazı sihirli eksik, ya da ben bir sürü yazarak ile yaşamak zorunda mı?

3 Cevap

Sen asla inanmaz, ama kısa bir yol :-) var

$this->User->find('all', array('fields'=>array('field1', 'field2')));
$arrayOfFiels = array('field1', 'field2');
$this->User->id = 123;
$userFields = $this->User->read($arrayOfFields);

Ya da bir şey gibi:

$userFields = $this->User->read(null, 123);

Her iki durumda da, $ userFields User #123 veri ile bir dizi olacak. null olarak belirlenen ilk argüman nedeniyle ikinci birinde, tüm alanlar zorlama olacaktır. (Isteğe bağlı) ikinci argüman daha önce de ilk örnekteki gibi önceden ayarlanabilir bir kimliği, ayarlar.

Eğer 'okumak' ya da model verileri almak için 'bulmak' ya da 'sorgusu kullanabilirsiniz ya

okumak

$fields = array('field1','field2');
$this->data = $this->User->okumak( $fields,$someid );

bulmak

$this->data = $this->User->bulmak('all',array('fields'=>array('field1','field2') );

sorgu

$this->data = $this->User->sorgu("select field1,field2 from user where id=$someid;");