SİPARİŞ ve LIMIT ile basit bir seçme sorgusu verilen CakePHP'de bir find () deyimi yazmak için doğru yolu nedir?

5 Cevap php

CakePHP'de bulmak deyimini kullanarak bu sorguyu yazmak nasıl

$this->Form->query("Select id from forms order by id DESC LIMIT 1")

5 Cevap

Bu yapmak gerekir:

$this->Form->find('all', array(
    'fields' => array('Form.id'),
    'order' => 'Form.id DESC',
    'limit' => 1
));

I agree with the first response here, 2 things I would like to mention I assume you have a model called Form,Now Cakephp has its own FormHelper and sometimes there maybe a conflict of names, I got this error when I had created a FilesController in my project, Also you will get an array back which will be of the form


$result['Form] => array(
                   [id] => 1
                   [name] => whatever)


ve böylece, kolayca istediğiniz ne olursa olsun veri almak için kullanabilirsiniz.

('Ilk') bulmak bu olmalı iken, asıl sorun muhtemelen çok daha basittir. Ben sadece böyle bir sorgu yapmak için tek nedeni son eklenen kimliği almak için varsayabiliriz. Gibi aynı "kaçak" bir sen aynı adı modeli özelliği eklenen id alabilirsiniz kaydetmek:

$this->ModelName->create($this->data);
if ($this->ModelName->save()) {
  $this->Session->setFlash('Saved it!');

  $id_of_new_row = $this->ModelName->id;
  $this->redirect(array('action' => 'view',$id_of_new_row));
}

paolo dedi, ama sorguya 'recursive' ekleme gibi:

$this->Form->find('all', array(
    'fields' => array('Form.id'), // just return the id, thank you
    'order' => 'Form.id DESC',    // sort the query result by id DESC
    'limit' => 1,                 // gimme the top id
    'recursive' => -1,            // don't scan associated models in the query
));

ama ben de kullanmak istiyorum

$this->Form->find('first', array(
     'fields' => array('Form.id'),
     'order' => array('Form.id DESC'),
     'recursive' => -1,
     )
);

Hangi çok daha kısa değil, ama ne istediğinizi daha anlamlı olduğunu.

Ve ben orada bir form yardımcı zaten, ve karışıklık olabilirdi çünkü, dikkat öneririm. Bu denetleyici kod iken, diğer taraftan, genellikle, görünümlerde $ form değişken kullanabilirsiniz.