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

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

welcome.blade. php

@if(count($posts) > 1)
    @foreach($posts as $post)
        <h2><a href="/posts/{{$post->id}}">{{$post->title}}</a></h2>
    @endforeach
@else
    </p>no posts found</p>
@endif

WelcomeController. php

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

PostsController. php

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

Интернет. php (маршруты)

  Route::get('/', 'PageController@index');
  Route::get('/welcome','PageController@Welcome');
  Route::get('/services', 'PageController@services');
  Route::get('/register', 'PageController@register');
  Route::get('/Create', 'PageController@Create');
  Route::get('/search', 'PageController@search');
  Route::get('/payment', 'PageController@Payment');



  Route::resource('posts', 'PostsController');
  Route::resource('search', 'SearchController');
  Route::resource('reviews', 'ReviewsController');

HomeController. php

    public function __construct()
{
    $this->middleware('auth');
}

/**
 * Show the application dashboard.
 *
 * @return \Illuminate\Contracts\Support\Renderable
 */
public function index()
{
    return view('home');
}

Я установил postscontroller, поскольку этот контроллер работает и отображает данные на других страницах (posts.index). , однако, когда я пытаюсь отобразить данные на Pages.index, я не могу это сделать?

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Убедитесь, что вы используете правильный путь в своем URL. В этом случае вы должны получить доступ к localhost:8000/welcome.

На вашем маршруте

Route::get('/index','PageController@HomePage');

Должно быть

Route::get('/welcome','WelcomeController@index');

, поскольку имя файла вашего контроллера - WelcomeController. php и вам нужно перенаправить на функцию индекса в этот контроллер.

Убедитесь, что вы перенаправляете на нужное представление в вашем контроллере public function index() { $posts = Post::all(); return view('Pages.welcome', compact('posts')); }

Здесь вы ищете файл welcome.blade. php в каталоге / Pages

0 голосов
/ 28 марта 2020

Ваши контроллеры и маршруты в порядке, но вы пропускаете заклинание foreach

@foreac h($posts as $post)

Замените на:

@foreach($posts as $post)

теперь это должно работать

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