2

名前のリストを行ごとにプレーン テキストとして返すには、コントローラー アクションの 1 つが必要です。これは、この形式を想定している 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');
    }
}

意見

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

結果

最初のユーザー\n2 番目のユーザー\n3 番目のユーザー\n

私が知る限り、ビュープレーン テキストとして返されていますが、\n文字どおりにレンダリングされています。どうすればこれを防ぐことができますか?

4

1 に答える 1

7

Cake ではなく、単なる PHP です。:)

一重引用符を使用すると、それらの間の文字は文字列として脅かされますが、二重引用符は \n を新しい行に解釈します。SOあなたの場合:

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

魔法をかける必要があります:)

于 2010-08-05T19:53:27.683 に答える