Laravel: неопределенные переменные сообщения - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь отобразить данные с помощью оператора foreach в моей системе. Теперь я передаю переменную 'posts' в мое представление, однако продолжаю получать сообщение об ошибке: Неопределенная переменная: posts (View:.

Search.blade. php

 @foreach($posts as $post)
  <option value="{{$post->distance}}">{{ $post->distance}}</option>

 @endforeach

SearchController. php

     public function index()
    {
       $posts = Post::all();
       return view('pages.Search')->with('posts', $posts);

     }

Теперь в моем PostsController. php У меня есть похожий код, который возвращает все сообщения.

PostsController. php

  public function index()
   {
    $posts = Post::all();
    return view('posts.index')->with('posts', $posts);

}

Будет ли это причиной ошибки, я не думал, что это приведет к ее возвращению на совершенно отдельную страницу.

Ответы [ 4 ]

0 голосов
/ 19 февраля 2020

Убедитесь, что переменная передана в правильный вид.


Шаг устранения неполадок:

  • Поиск URL
  • Поиск соответствующего маршрута
  • Найти контроллер
  • Найти представление

Убедитесь, что вы используете правильный контроллер для представления.

0 голосов
/ 19 февраля 2020
return view('posts.index')->with(['posts' => $posts]);

Должен сделать работу

0 голосов
/ 19 февраля 2020

Если у вас есть данные в $ posts в контроллере

Try compact

Как: - в контроллере

$posts = Post::all();    
return view('posts.index', compact('posts');

в блейде

@if(count($posts)>0)
 @foreach($posts as $post)
  <option value="{{$post->distance}}">{{ $post->distance}}. 
  </option>
 @endforeach
@else
 <h4>Data not found</h4>
@endif
0 голосов
/ 19 февраля 2020

вы, вероятно, могли бы сделать это так:

public function index()
   {
    $data['posts'] = Post::all();
    return view('posts.index',$data);

}
...