当我通过find('all')搜索数据时,它会获得此resturn数据:
Array (
[0] =>
Array (
[0] => /* why this is not the model name? */
Array (
[id] => 1
[username] => **
[password] => en
[memo] => **
)
)
)
我怎样才能得到这样的结果?
Array (
[0] =>
Array (
['User'] => /* use the model name? */
Array (
[id] => 1
[username] => **
[password] => en
[memo] => **
)
)
)
我发现了另一个问题:
account table:
id username password
2 admin 123456
email table:
id title content account_id
1 test test email 2
这样的模型: class Account扩展AppModel { public $ name ='帐户'; }
class Email extends AppModel{
public $name = 'Email';
public $belongsTo = array(
'Account' => array(
'className' => 'Account',
'foreignKey' => 'account_id'
)
);
}
所以我编码:
App::import('Model','Email');
$this->Email = new Email();
$result = $this->Email->find('all');
我得到的结果是:
Array (
[0] =>
Array (
[0] =>
Array (
[id] => 1
[username] => admin
[password] => 123456
[title] => test
[content] => test email
[account_id] => 1
)
)
)
为什么Email
表的id在结果中覆盖了Account
表的id?
谁能告诉我需要在我的php中安装哪些PHP支出?
答案 0 :(得分:0)
您无需在控制器中实例化模型。运行代码时,它们将被延迟加载。
如果要删除数字索引并且只是搜索单个记录,则应使用find('first')
,因为这将只返回一条记录,这将从结果中删除数字索引。
例如,在您的控制器,UsersController中,您应该可以这样做。
App::uses('AppController', 'Controller');
class UsersController extends AppController {
public function index() {
$users = $this->User->find('all');
var_dump($users);
}
}
如果您想在此处加载其他模型,可以使用$this->loadModel()
App::uses('AppController', 'Controller');
class UsersController extends AppController {
public function index() {
$this->loadModel('People');
$users = $this->People->find('all');
var_dump($users);
}
}