首页 > 解决方案 > Laravel 单元测试非法偏移类型

问题描述

我目前正在尝试了解 Laravel 中的单元测试,并且我正在尝试查看是否可以通过添加一个选项来从我找到的教程中分支出来,该选项具有/posts在网格中显示所有帖子的路线但我来了遇到错误,我无法理解哪里出错了。

查看ALogPostTest.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

我试图研究将数组传递给视图,这应该是我的做法,但我不明白这个错误意味着什么,搜索它没有意义,我发错了吗?还是有另一种方式我应该将数组数据传递给视图?

标签: laravel

解决方案


我认为view()->with()需要key然后value。您的代码会切换这些参数。试试这个PostController

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

推荐阅读