2013-11-20 4 views
1

Я хочу построить систему выставления счетов в CakePHP. Пока все хорошо, но я хочу создать функцию в CakePHP, чтобы правильно отображать имя клиента. В более ранней сборки (только PHP) Я builed это (в классе пользователя):Функция для правильного отображения имени

function get_display_name(){ 
    if($this->company){ 
     return $this->company; 
    } else { 
     return $this->frontname . ' ' . $this->lastname; 
    } 
} 

Но я не могу заставить его работать в CakePHP. Или я должен делать это в представлении?

EDIT

Я сделал CustomerHelper в Helper папке CakePHP, где я добавил это:

class CustomerHelper extends AppHelper { 
    function get_display_name(){ 
     if($this->Customer->find('company')){ 
      return $this->Customer->find('company'); 
     } else { 
      return $this->Customer->find('frontname') . ' ' . $this->Customer->find('lastname'); 
     } 
    } 
} 

Но я получаю фатальную ошибку в настоящее время. «Ошибка: Вызов функции члена находке() на не-объект»

+0

Почему это не работает? Какая-то ошибка или что-то еще? –

+0

Вы должны опубликовать весь свой класс 'User' ... – noslone

+0

Это звучит неплохо для 2.x, где модели не являются объектами, хранящими данные напрямую. Лучше используйте find() и вспомогательный элемент для правильного форматирования вывода. Но вам нужно передать в свой массив данных клиентов (не пытаясь сделать модельные запросы у вашего помощника!). – mark

ответ

0

перевале в ваших данных:

class CustomerHelper extends AppHelper { 
    public function getDisplayName($customer) { 
     ///... 
     return $result; 
    } 
} 

Также обратите внимание, что я исправил это для удовлетворения CakePHP стандартов кодирования.

+0

Это сработало! Благодаря! Я надеялся, что был бы более хороший способ сделать это, но это прекрасно! – Vincent

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