2

我是 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 中的一些魔法来完成这项任务,还是我必须忍受大量的输入?

4

3 回答 3

4

你永远不会相信,但有一条捷径:-)

$this->User->find('all', array('fields'=>array('field1', 'field2')));
于 2010-02-18T23:54:08.160 回答
2
$arrayOfFiels = array('field1', 'field2');
$this->User->id = 123;
$userFields = $this->User->read($arrayOfFields);

或类似的东西:

$userFields = $this->User->read(null, 123);

User #123在这两种情况下,$userFields 都将是一个包含数据的数组。在第二个中,由于第一个参数设置为null,将获取所有字段。第二个参数(可选)设置一个 id,它也可以像第一个示例一样在前面预先设置。

于 2010-02-18T22:22:58.030 回答
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;");
于 2010-02-21T08:44:43.427 回答