2011-06-04 19 views
6

Bugün bir modelde sihir findBy işlevlerini kullanmayı düşünmekteydim ve işlev için isteğe bağlı parametreleri ayarlamaya çalışırken bir sorunla karşılaştı. İşte denedim.

$result = $this->findById($id['Alpha.name']); 

Yani belirli bir id ile bir kaydı bulmak ve sadece name alanın değerini döndürmek için çalışılıyor, açıklamak. Belgelere göre, bunu yapmanın bir yolu var.

findBy sihirli işlevleri de bazı isteğe bağlı parametreleri kabul ediyoruz: findBy<fieldName>(string $value[, mixed $fields[, mixed $order]]);

CakePHP 1.3 Book :: findBy

Basit findBy($id) yaptığınızda bir sonuç kümesini olsun. Ama parametrelerle hiçbir şey elde edemiyorum. Bunu yapmanın başka yolları olduğunu biliyorum, ancak bu sihirli fonksiyonları başka parametrelerle kullanan herhangi birinin başarılı olup olmadığını merak ettiniz mi?

cevap

11

bu deneyin:

$id aradığınız ve Alpha.name ihtiyacınız bir alandır kaydının bir kimliği olduğu
$result = $this->findById($id, array('Alpha.name')); 

(örn modeli Alpha den name)

+0

Bu çalıştı. Sorunun sözdizimiyle (yani yanlış sözdizimi kullanıyordum) bu yanıt için kredi vereceğim. Bununla birlikte, modelin “hasMany” ilişkileri varsa, bu ilişkilerin iade edileceğini keşfettim. Bu model 'hasOne' ilişkilerine sahipti ama bunlar geri dönmedi. Herhangi bir '' '' '' '' '' '' '' '' '' '' '' '' '' '' '•' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'ı döndürüp döndürmeyeceğini bilmiyorum – generalopinion

+0

@generalopinion ilgili modellerle model almak için '$ this-> Alpha-> recursive = 1' ayarlamaya çalışın. 'HasOne' model' Beta' – zergussino

+0

Sweet gelen ilgili verilerle. $ This-> Alpha-> recursive = -1' işlevinin yalnızca herhangi bir ilişki olmadan modeli döndüreceğini varsayar mıyım? – generalopinion

İlgili konular