Как заставить CakePHP отображать простой текст с переводами строки? - PullRequest
2 голосов
/ 05 августа 2010

Мне нужно одно из моих действий контроллера, чтобы вернуть список имен, по имени на строку, в виде простого текста. Причина этого заключается в том, что он может использоваться плагином автозаполнения JQuery, который ожидает этот формат. К сожалению, при отображении страницы символы \n не будут отображаться как символы новой строки.

Контроллер

function UserController extends AppController {
    var $components = array('RequestHandler');

    function users_ajax() {
        $users = $this->User->find('all');
        $this->set('users', $users);

        $this->layout = false;
        Configure::write('debug', 0);
        $this->RequestHandler->respondAs('text');
    }
}

View

foreach($users as $user) {
    echo $user['User']['name'] . '\n';
}

Результат

ПЕРВЫЙ ПОЛЬЗОВАТЕЛЬ \ nВТОРОЙ ПОЛЬЗОВАТЕЛЬ \ nТРЕТЬЙ ПОЛЬЗОВАТЕЛЬ \ n

Насколько я могу судить, представление - это , возвращаемое в виде простого текста, однако \n выводится буквально. Как я могу предотвратить это?

1 Ответ

7 голосов
/ 05 августа 2010

Это не торт, это просто PHP.:)

Используя одинарные кавычки, символы между ними обрабатываются как строки, а двойные кавычки интерпретируют \ n для новой строки.ТАК в вашем случае:

foreach($users as $user) {
    echo $user['User']['name'] . "\n";
}

должен творить чудеса:)

...