ErrorException Неопределенная переменная: post - PullRequest
1 голос
/ 15 июня 2019

хорошо, поэтому я хотел получить сообщение из моей базы данных с моим контроллером, а затем показать его в моем представлении в welcome.blade.php, но сообщение продолжает показывать ErrorException:

Undefined variable: post

Полагаю, проблема в том, как я пишу свой код для получения функции getIndex в моих маршрутах, поэтому я пытался изменить это, но продолжаю получать тот же результат.

так что это строка в welcome.blade.php:

<!-- Blog item -->
                    <div class="blog-item">
                        <div class="blog-thumb">
                            <img src="asset/img/blog/1.jpg" alt="">
                        </div>
                        <div class="blog-text text-box text-white">

                            <div class="top-meta"><small><i>{{ Carbon\Carbon::parse($post->created_at)->format('d-m-Y')  }} by <a href="#">{{ $post->name }}</a></i></small>/  di <a href="">Rakitan</a></div>

                            @foreach($posts as $post)
                            <h3 class="blog-post-title">{{ $post->title }}</h3>
                            <p>{!! \Illuminate\Support\Str::words($post->description, 30, '...') !!}</p>
                             <blockquote>
                            <p>
                            <a href="{{ route('post.read', ['post_id' => $post->id]) }}" class="btn btn-primary btn-sm">Learn more</a> </p>
                            </blockquote>
                            </div><!-- /.blog-post -->
                            @endforeach

                            <a href="{{ url('/2019') }}" class="read-more">Lanjutkan Baca  <img src="asset/img/icons/double-arrow.png" alt="#"/></a>
                        </div>
                    </div>
                    <!-- Blog item -->

это контроллер PostController

<?php
namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;

    class PostController extends Controller
    {
        public function getIndex() {
            $posts = DB::table('users')->leftjoin('posts', 'users.id', '=', 'posts.author')->paginate(2); 
            return view('welcome', ['posts' => $posts]);
        }
    }

и это файл маршрутов web.php

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', 'PostController@getIndex',function () {
    return view('welcome')->name('index');
});
Route::get('/', 'PostController@getIndex')->name('index');
Route::get('/2019', 'BlogController@blog');
Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/author/post','HomeController@getPostForm')->name('post.form');
Route::post('/author/post', 'HomeController@createPost')->name('post.form');
Route::get('/author/post/detail/{id}', 'HomeController@getPost')->name('post.detail');
Route::get('/author/post/edit/{id}', 'HomeController@editPost')->name('post.edit');
Route::post('/author/post/edit/{id}', 'HomeController@updatePost')->name('post.update');
Route::get('/author/post/delete/{id}', 'HomeController@deletePost')->name('post.delete');

1 Ответ

2 голосов
/ 15 июня 2019

Вы устанавливаете мету в HTML перед тем, как определить post в цикле for.

@foreach($posts as $post)
    <!--moved meta in here-->
    <div class="top-meta"><small><i>{{ Carbon\Carbon::parse($post->created_at)->format('d-m-Y')  }} by <a href="#">{{ $post->name }}</a></i></small>/  di <a href="">Rakitan</a></div>
...
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...