你好我有一个日期字段en mi DB“dateToday”现在我需要选择全年并将它们存储在一个数组中
2013年1月11日
2014年3月12日
2014年5月21日
2013年11月15日
2014年12月19日
2014年3月17日
2015年9月1日
2015-04-24
我的阵列将是(2013年,2014年,2015年)
进入我的代码我探测了一些但没有找到的东西。
模型
SoyaProductorCompra.php
<?php
/**
*
*/
class SoyaProductorCompra extends AppModel
{
public $useTable = 'soyaproductorcompra';
public $primaryKey = 'id';
public $belongsTo = array('User');
public function getYears()
{
return $this->SoyaProductorCompra->find('all', array('fields' => 'DISTINCT YEAR(fecharegistro) as distinct_year'));
}
}
?>
但在我看来没有找到
SoyasController.php
<?php
/**
*
*/
class SoyasController extends AppController
{
public function cano($id = null)
{
$this->loadModel('Soya');
$this->loadModel("SoyaProductorCompra");
$years = $this->SoyaProductorCompra->getYears();
if (!$id) {
$this->Session->setFlash('Porfavor provea un id de usuario');
$this->redirect(array('action'=>'index'));
}
$user = $this->Soya->findById($id);
if (!$user) {
$this->Session->setFlash('El id proporcionado no es valido');
$this->redirect(array('action'=>'index'));
}
if (!$this->request->data) {
$this->request->data = $user;
}
}
}
错误:在非对象上调用成员函数find()
文件:SoyaProductorCompra.php
行:返回$ this-&gt; SoyaProductorCompra-&gt; find('all',array('fields'=&gt;'DISTINCT YEAR(fecharegistro)as distinct_year'));
答案 0 :(得分:0)
通过控制器,您可以从模型中获得与此类似的不同年份:
$years = $this->YourModel->find('all', array(
'fields' => 'DISTINCT YEAR(yourdatefield) as distinct_year'
));
然后,填充一个数组:
$distinct_years = array();
foreach($years as $year) {
$distinct_years[] = $year[0]['distinct_year'];
}
...并将其设置为在您的视图中可用:
$this->set(compact('distinct_years'));
然后在你看来:
print_r($distinct_years);
答案 1 :(得分:0)
您不必在自己内部调用模型,因为它存储在this
变量中。所以:
public function getYears()
{
return $this->find('all', array('fields' => 'DISTINCT YEAR(fecharegistro) as distinct_year'));
}