doğrudan CakePHP'de PHP superglobals kullanarak olmamalıdır. Belirsiz alan hataları elde etmemek için Model.field
adlarını kullanmalısınız.
Sanal alanlar gitmek için bir yoldur, ancak bu sizin sorununuz değil, kitabı biraz daha okumalısınız.
$total = $this->RequestedItem->find('all', array(array('fields' => array('sum(Model.cost * Model.quantity) AS ctotal'), 'conditions'=>array('RequestedItem.purchase_request_id'=>$this->params['named']['po_id'])));
, iyi çalışması gerekir virtualFields ile bu
var $virtualFields = array('total' => 'SUM(Model.cost * Model.quantity)');
$total = $this->RequestedItem->find('all', array(array('fields' => array('total'), 'conditions'=>array('RequestedItem.purchase_request_id'=>$this->params['named']['po_id'])));
Alanlar koşulları 'koşullar' anahtarında gitmek gibi, 'alanlar' anahtarında gitmek olurdu. Bu da çalışır http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find
Muhtemelen CakePHP sizin için kullanıcı girdisini ovuyor olsa bile, $ _GET ['po_id'] 'i doğrudan bir sorguya koymaktan kaçınmak isteyebilirsiniz. – Dave
@ CakePHP'nin zaten enjeksiyon yapıp yapmadığını kontrol edin, zarar nedir? –