1
votes

Impossible d'obtenir la liste des modes d'une application

Je ne peux pas faire de foreach avec ma réponse

J'ai déjà essayé beaucoup de choses mais rien ne l'a résolu

@if($effects)
  @foreach($effects as $effect)
    <tr>
      <td>{{ $effect['mode'] }}</td>
      <td>{{ $effect['name'] }}</td>
      <td><button class="btn btn-sm btn-primary">Activate</button></td>
    <tr>
  @endforeach
@else
  <tr>
    <td colspan="3">No effects found.</td>
  </tr>
@endif
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
  $client = new \GuzzleHttp\Client();
  $effects = [];
  $res = $client->request('GET', 'http://85.171.71.189/get_modes');
  $effects = json_decode($res->getBody()->getContents(), true);
  return view('base.effects', [ 'effects' => $effects ]);
}

J'attends que j'ai une table avec tous les modes à l'intérieur, mais l'erreur réelle est

Index non défini: nom (Vue: H: \ wamp64 \ www \ scintillement \ resources \ themes \ light \ base \ effects.blade.php)


2 commentaires

dd ($ effects) dans votre contrôleur et vérifiez si l'index de nom existe.


Copie possible de "Remarque: variable non définie", "Remarque: non définie index "et" Remarque: décalage non défini "en utilisant PHP


3 Réponses :


1
votes

Vous devriez essayer ceci:

 @if($effects)
                  @foreach($effects as $effect)
                      <tr>
                        @if(isset($effect['mode']))
                        <td>{{ $effect['mode'] }}</td>
                        @else
                        <td>-</td>
                        @endif
                        @if(isset($effect['name']))
                        <td>{{ $effect['name'] }}</td>
                        @else
                        <td>-</td>
                        @endif
                        <td><button class="btn btn-sm btn-primary">Activate</button></td>
                      <tr>
                  @endforeach
                @else
                  <tr>
                    <td colspan="3">No effects found.</td>
                  </tr>
                @endif


3 commentaires

Heureux de vous aider :)


Si ma réponse fonctionne pour vous, veuillez accepter ma réponse


Oui, cela fonctionne mais mon code est propre :)) @AddWebSolutionPvtLtd



1
votes

Il y avait des lignes vides dans get depuis les http://85.171.71.189/get_modes

Vous pouvez le gérer en ajoutant la condition de vide ou non avant de l'afficher dans le tableau

@if($effects)
@foreach($effects as $effect)
    @if(!empty($effect)) // new condition added
        <tr>
            <td>{{ $effect['mode'] }}</td>
            <td>{{ $effect['name'] }}</td>
            <td><button class="btn btn-sm btn-primary">Activate</button></td>
        <tr>
    @endif
@endforeach


0 commentaires

2
votes

Essayez ceci:

@forelse ($effects as $effect)
    <tr>
        <td>{{ isset($effect['mode']) ? $effect['mode'] : '--' }}</td>           
        <td>{{ isset($effect['name'] ? $effect['name'] : '--' }}</td>                
        <td><button class="btn btn-sm btn-primary">Activate</button></td>
    <tr>
@empty
    <tr>
        <td colspan="3">No effects found.</td>
    </tr>
@endforelse


0 commentaires