@foreach($users as $user)
$users[] = $user->name;
@endforeach
このような出力を得たいと思います。laravel5を使用してforeachループを配列に変換する
['X', 'Y', 'Z', 'C'];
注:JavaScript機能でこれを使用する必要があるため、これが必要です。
@foreach($users as $user)
$users[] = $user->name;
@endforeach
このような出力を得たいと思います。laravel5を使用してforeachループを配列に変換する
['X', 'Y', 'Z', 'C'];
注:JavaScript機能でこれを使用する必要があるため、これが必要です。
まず、foreachループを配列に変換することはできません。 foreachループを使用して結果の配列を取得します。この場合、私はforeachアプローチでは行かないでしょう。あなたのコードを少しきちんと掃除するのに役立ついくつかの方法があります。
あなたは$users
変数、pluck()またはarray_column()の種類に応じて、2つのオプションがあります:(コメントは指摘したように)あなたがその出力を使用する場合は
// $users is a collection
json_encode($users->pluck('name'));
// $users is an array
json_encode(array_column($users, 'name'));
json_encode()
を強くお勧めしますあなたのjavascript。今すぐあなたはそれを応答で送信し、それを通常のJSONとして使用することができます。
あなたは、ブレードを使用した変数を印刷し、あなたが{{ }}
を使用している場合、それはボンネットの下にhtmlspecialchars()
機能を使用していますので、そうでない場合、あなたは、不要なscaped文字になるだろう、{!! !!}
を使用する必要が覚えている場合。
希望すると、これが役立ちます。
私はそれをjsonに変換することができますが、['A'、 'B']の代わりに[" A "," B "の代わりになります –
私はあなたがjsonを印刷するためにブレードを使用しているとします。 '{!! '{{}} 'の代わりに'!{'}を使って変数を出力します。 – Asur
ありがとうございました。 –
私はあなただけのコントローラでこのアクションを実行する必要がありますお勧めします、と
var names="{!! $userNames!!}";
var names= names.split(",");
なぜ、彼がbladeとlaravelを使っていると言ったら '<?php echo'を使うのですか? – henrik
コレクションは自動的に変換されるよう
$userNames=implode(",",array_column($users,'name'));
return view('your_view',['userNames'=>$userNames]);
は、その後、あなたのJSでそれを分割して、あなたのビューに渡しますそれらをエコーしようとするとjson
になります。
"
が表示されている理由は、{{ }}
を使用すると自動的に保護された文字列がエスケープされるためです。代わりに{!! !!}
を使用してこれを防ぐことができます。
<script>
var data = '{!! $users->pluck('name') !!}';
console.log(JSON.parse(data));
</script>
・ホープ、このことができます:
はこのような何かを試してみてください!
_「JavaScript関数でこれを使用する必要があるため、これが必要です」_ - 次に「json_encode」を使用します。 – CBroe
JavaScriptを使ってどうやって使うのか教えていただけますか?また、 '$ users'がEloquent Collectionであると仮定していますか? –
コメントありがとうございました。今、jsでこれらの引用符を取り除くことはできますか? [" A " " B " "] @CBroe –