Laravel Тип недопустимого смещения модульного теста - PullRequest
0 голосов
/ 06 августа 2020

В настоящее время я пытаюсь понять модульное тестирование в Laravel, и я пытаюсь понять, смогу ли я отойти от найденного мной учебника, добавив возможность иметь маршрут /posts, который отображает все сообщения в сетке, но я обнаружил ошибку и не понимаю, где что-то не так.

ViewABlogPostTest. php

public function testSeeAllPosts()
    {
        $response = $this->get("/posts");

        $response->assertStatus(200);
    }

При запуске я получаю следующее ошибка:

1) Tests \ Feature \ ViewABlogPostTest :: testSeeAllPosts ErrorException: недопустимый тип смещения

web. php Маршрут:

Route::get('/posts', 'PostController@all');

PostController все функции:

public function all(){
      $posts = Post::all();

      return view('all-posts')->with($posts, 'posts');
    }

all-posts.blade. php:

This page is supposed to show all of the posts in the db
@foreach($posts as $post)
<p>{{ $post->id }} | {{ $post->title }} | {{ $post->body }}</p>
@endforeach

Я попытался изучить передачу массивов в представления, и это должно быть так, как я это делаю, но я не не понимаю, что означает эта ошибка, и искать ее не имеет смысла, я сделал сообщение неправильно? или есть другой способ передать данные массива в представление?

1 Ответ

0 голосов
/ 06 августа 2020

Я думаю, что view()->with() берет key, затем value. Ваш код переключает эти аргументы. Попробуйте это на своем PostController

public function all() {
    $posts = Post::all();
    return view('all-posts')->with('posts', $posts);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...