私は配列のディレクトリからすべてのイメージを取り出し、シャッフルして、それをSymfonyのビューに表示しようとしています。例えばSymfony:配列をシャッフルする
:
/画像/テーマ/ 404/03 /images/theme/404/02.gif
/images/theme/404/01.gif
。 gif
は画像ですが、画像の数はわかりません。私はそれらのイメージをシャッフルして、それを見せつけようとします。
私はこれでした:Warning: Cannot use a scalar value as an array
ED:私は、このエラーのエラーを取得
コントローラ
public function showAction()
{
$dir = $this->get('kernel')->getRootDir() . '/../web/images/theme/404/';
$dh = opendir($dir);
$errorFiles = array();
$errorFilesShuffled = shuffle($errorFiles);
while (false !== ($filename = readdir($dh)))
if ($filename != '.' && $filename != '..' && $filename[0] != '.')
$errorFilesShuffled[] = $filename;
return $this->render('errors/show.html.twig', [
'gifs' => $errorFilesShuffled
]);
}
ビュー
{% for image in gifs %}
<div class="clearfix mosaicflow">
<div class="mosaicflow__item">
<img src="{{ asset('/images/theme/404/'~image) }}" />
</div>
</div>
{% endfor %}
をIT
このコントローラーではもうエラーは発生しません。
コントローラ
public function showAction()
{
$dir = $this->get('kernel')->getRootDir() . '/../web/images/theme/404/';
$dh = opendir($dir);
$errorFiles = array();
while (false !== ($filename = readdir($dh)))
if ($filename != '.' && $filename != '..' && $filename[0] != '.')
$errorFiles[] = $filename;
$errorFilesShuffled = shuffle($errorFiles);
return $this->render('errors/show.html.twig', [
'gifs' => $errorFilesShuffled
]);
}
しかし、私は別の問題を抱えている、私は、ページ上の画像を見ることができません。私がHTMLをチェックすると、div <div class="clearfix mosaicflow">
はここにもありません。
'ダンプ($ errorFilesShuffled)を行います。フォームをレンダリングして結果を投稿する前に、また、要素が設定される前に配列をシャッフルしているので、何もしません。 – KhorneHoly
あなたの問題を解決する答えを書きました。 – KhorneHoly