我是CakePHP的新手,还在搞清楚基础知识。现在我对从模型中获取一个或多个字段的过程(从另一个链接模型中)感到有点迷惑。
到目前为止,我有这个:
$this->user->id = 123;
$this->User->read();
$field1 = $this->User->data['User']['field1'];
$field2 = $this->User->data['User']['field2'];
这看起来非常冗长。
而且:
$this->user->id = 123;
$field1 = $this->User->field('field1');
$field1 = $this->User->field('field2');
这似乎不太长,但导致两个查询。
我使用在这些情况下做的事情,前蛋糕:
$this->User = new User(123);
$field1 = $this->User->field1;
$field2 = $this->User->field2;
或者当我想打字时:
this->User = new User(123);
$field1 = $this->User->getFieldOne();
$field2 = $this->User->getFieldTwo();
所以,问题是:我是否在CakePHP中错过了完成此任务的一些魔法,或者我是否需要经常打字?
答案 0 :(得分:4)
你永远不会相信,但有一个简短的方法: - )
$this->User->find('all', array('fields'=>array('field1', 'field2')));
答案 1 :(得分:2)
$arrayOfFiels = array('field1', 'field2');
$this->User->id = 123;
$userFields = $this->User->read($arrayOfFields);
或类似的东西:
$userFields = $this->User->read(null, 123);
在这两种情况下,$ userFields都是一个包含User #123
数据的数组。在第二个中,由于第一个参数设置为null
,因此将获取所有字段。第二个参数(可选)设置一个id,也可以像第一个例子中那样预先设置。
答案 2 :(得分:0)
您可以使用“读取”或“查找”或“查询”从模型中获取数据
读
$fields = array('field1','field2');
$this->data = $this->User->read( $fields,$someid );
查找
$this->data = $this->User->find('all',array('fields'=>array('field1','field2') );
查询
$this->data = $this->User->query("select field1,field2 from user where id=$someid;");