2 votes

Laravel pour boucler un tableau indexé à partir d'une seule colonne de ma base de données à l'intérieur d'une forelse dans un modèle de lame.

J'ai une boucle for qui va afficher un tableau indexé à partir de la colonne de résultats qui enregistre un tableau dans une base de données, à l'intérieur d'une boucle forelse.

Voici comment je stocke le tableau

$final_result = ResultRecordFile::create([
            'request_id' => $request->id,
            'date_released' => $date,
            'lab_access_code' => $input['lab_access_code'],
            'remarks' => $input['remarks'],
            'results' => json_encode($input['results']) // Stores array in the column
        ]);

Maintenant je vais récupérer toutes ces données dans ma vue en utilisant blade.

Le tableau de la base de données est exactement comme ceci quand j'utilise json_decode pour le champ des résultats

[
     "Result1",
     "Result2",
   ]

Voici ce que j'ai fait jusqu'à présent.

@forelse ($result->request->methodology->submethods as $submethod)
              <ul>
                <li>
                  <b>{{ $submethod->name }}</b> result is
                  @foreach(json_decode($result->results) as $value)
                    {{ $value }}
                   @endforeach
                </li>
              </ul>
            @empty
              <p>This request has no submethods</p>
            @endforelse

Mais il me renvoie une sortie de ceci dans la vue.

Test result for this sub method result is Result1 Result2
Test result for this sub method result is Result1 Result2

J'ai également essayé ce code ci-dessous :

@forelse ($result->request->methodology->submethods as $submethod)
              <ul>
                <li>
                  <b>{{ $submethod->name }}</b> result is
                    @for($i=0; $i < count($result->results); $i++)
                      {{ $result->results[$i]}}
                    @endfor
                </li>
              </ul>
            @empty
              <p>This request has no submethods</p>
            @endforelse

Mais maintenant il me renvoie ceci dans ma vue

Test result for this sub method result is [
Test result for this sub method result is [

Le résultat est censé être comme ceci :

Test result for this sub method result is Result1
Test result for this sub method result is Result2

Le problème ici est qu'il me renvoie la valeur entière du tableau alors qu'il devrait renvoyer chaque valeur du tableau stocké dans la base de données.

J'apprécierais si quelqu'un pouvait m'aider. Merci d'avance.

1voto

Mehravish Temkar Points 2370

Essayez ça :

@forelse ($result->request->methodology->submethods as $submethod)
    <ul>
        @foreach(json_decode($result->results) as $value)
            <li>
                <b>{{ $submethod->name }}</b> result is
                    {{ $value }}
            </li>
         @endforeach
    </ul>
@empty
    <p>This request has no submethods</p>
@endforelse

1voto

Sohel0415 Points 7269

Cela pourrait vous convenir

$result_datas = json_decode($result->results);
$index = 0; 
@forelse ($result->request->methodology->submethods as $submethod)
  <ul>
        <li>
            <b>{{ $submethod->name }}</b> result is
                @if(isset($result_datas[$index]))
                   {{ $result_datas[$index] }}
                @endif
                <?php $index++;?>
        </li>
  </ul>
@empty
  <p>This request has no submethods</p>
@endforelse

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X