2014-10-24 1 views
-1

Я новичок в cakephp. У меня проблема с вызовом функции. вот моя проблема.Вызывающая функция с возвратным значением в cakephp

В Contrloller файле я получаю все значения, используя следующую функцию

public function index() 
{ 
    $conditions = array(
     'order' => array('Histroy.chat_sk DESC') 
    ); 
    $this->set('histroys', $this->Histroy->find('all',$conditions)); 
} 

В моей модели файла имеют следующие,

class Histroy extends AppModel 
{ 
    public $tablePrefix = 'plc_'; 
    public $useTable = 'chat_history'; 
} 

В моем файле представления я перечислил значения, используя Еогеасп () и что следующим образом

foreach ($histroys as $histroy): 
    $oper_name = $histroy['Histroy']['operator_fk']; 
    $operator_email = $histroy['Histroy']['email']; 
endforeach 

в этом opertaor_fk является полем в истории ory стол. Поэтому мне нужно получить имя оператора другой таблицей в качестве операторов. Поэтому мне нужно вызвать эту функцию в представлении.

Ex: В ядре мы можем сделать вроде как,

$operator_name = operator_name($fetch['operator_id']); 

Функция должна быть такой:

function operator_name($id) 
{ 
    // Select the value for the matched field in the operator 
    return $operator_name; 
} 

В CakePHP, как я могу получить значения.

Пожалуйста, помогите мне исправить это. Спасибо в Advance

+1

Это действительно CakePHP 101, я предлагаю начать с чтения документов: ** [Ассоциации] (http://book.cakephp.org/2.0/en/models/associations-linking-models-together. html) **, ** [Containable] (http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html) ** – ndm

ответ

1

Следуйте за blog tutorial для торта. Он объяснит, как создавать ассоциации и отношения между таблицами, чтобы позволить вам делать то, что вам нужно, но в двух словах вам нужно создать отношения между моделями History и Operator и работать оттуда.

+0

Спасибо, я прочитал учебник. теперь я использую следующую ассоциацию для извлечения значения ' '. и у меня есть файл ' '. Но я получаю ошибку 'Ошибка: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец« Histroy.operator_id »в« on clause »в моей таблице было поле« operator_fk ». Так как я могу изменить это – satheesh

+0

Опубликовать информацию о модели –

+0

У меня есть два оператора модели и история. Мне нужно получить имя от оператора, используя поле history.operator_fk. и историческая модель содержит «класс Histroy extends AppModel {\t \t var $ name = 'History'; \t var $ принадлежитTo = 'Operator'; \t } 'и модель оператора содержит' class Operator extends AppModel { \t var $ name = 'History'; \t var $ hasOne = 'Operator'; } '. – satheesh