Почему я должен получать эту ошибку так часто? - PullRequest
0 голосов
/ 03 ноября 2019

Hello World!

У меня небольшая проблема, и я не знаю, как ее решить. Я пробовал кое-что, но ничего не получалось. Ошибка выглядит следующим образом:

Неопределенная переменная: post (Просмотр: ../resources/views/blog/posts/index.blade.php)

Этомой код в контроллере:

<?php

public function index() {
    $posts = Post::orderBy('created_at','ASC')->paginate(15);
    return view('blog.posts.index')->withPosts($posts);
}

public function post($slug) {

    // Fetch from the database based on slug.
    $post = Post::where('slug', '=', $slug)->first();

    // Return the view and pass the post object.
    return view('blog.posts.post')->withPost($post);
}

И это часть кода для просмотра:

<!-- Main Content -->
<div class="container" id="load-data">
  <div class="row">
    <div class="col-lg-8 col-md-10 mx-auto">
      @foreach($posts as $post)
      <div class="post-preview">
        <a href="{{ url('blog/posts/'.$post->slug) }}" role="button">
          <h2 class="post-title">
            {{ $post->title }}
          </h2>
          <h3 class="post-subtitle">
            {{ $post->desc }}
          </h3>
        </a>
        <p class="post-meta">Posted on {{ date('F j, Y', strtotime($post->created_at)) }}</p>
      </div>
      <hr> @endforeach
    </div>
  </div>
</div>

А также маршрут:

Route::prefix('/blog/posts')->group(function () {

Route::get('/', 'BlogController@index')->name('posts'); });

Спасибо за ваши ответы!

1 Ответ

1 голос
/ 03 ноября 2019

Laravel имеет два основных способа отправки данных (переменных) из контроллера в представление. Первый способ, описанный в их документации (https://laravel.com/docs/5.8/views), - это связывание с с функцией просмотра.

return view('blog.posts.post')->with('post', $post);

Вы можете связать с сколько бы вы ни хотели, однако это не очень понятно, если вам нужно отправить множество переменных в представление. Более приемлемый способ сделать это - использовать PHP compact function (* 1013). * как второй параметр функции view , как указал @ Ben96. compact по существу преобразует строку имен переменных в ассоциативный массив с их ключами и значениями, что позволяет имиспользоваться в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...