2013-06-09 2 views
0

Когда я искать данные по находке («все»), это получить эту 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 

Модель как это: класс Account расширяет AppModel { публичных $ 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 таблицы накрыла идентификатор Account таблицы в результате ??

И кто может сказать мне, какой из php расходов мне нужно установить в моем php ??

+0

Что такое 'data' ...? – Aiias

+0

Почему вам нужно знать название модели? Запрос должен быть чем-то вроде 'Model_name.find ('all')' –

+0

, вы помещаете 'App :: import ('Model', 'Email'); $ this-> Email = новый адрес электронной почты(); $ result = $ this-> Email-> find ('all'); 'в модели? Если да, и вы печатаете результат из модели, вы обходите некоторые довольно важные функции конструктора. Вам не нужны следующие строки ... 'App :: import ('Model', 'Email'); $ this-> Email = новый адрес электронной почты(); '. Это должно быть $ this-> loadModel ('Email'); $ This-> email-> найти ('все'); в вашем контроллере. –

ответ

0

Вам не нужно создавать модели в контроллерах. Они будут лениво загружаться при запуске кода.

Если вы хотите удалить числовой индекс и просто ищете одну запись, вы должны использовать find('first'), так как это приведет к возврату только одной записи, которая удалит числовое индексирование из результата.

В вашем контроллере UserController, например, вы должны это сделать.

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); 
    } 
} 
+0

Какое расширение нужно установить на моем php? – Suebao

+0

@ Суэбао Извините, я не понимаю, что вы имеете в виду. –

Смежные вопросы