strpos(): 参数 #1 ($haystack) 必须是字符串类型,数组给定

strpos(): Argument #1 ($haystack) must be of type string, array given

我是 Laravel 的新手,正在学习 Laracast 的免费课程。这是我的课程 my_cource 的 link(2:49s 的第 11 集)。

我的问题总结:我正在尝试让我的代码更加明确地说明我不想做的事情(更具体的是创建一个 class 名称:Post,以及一个方法: find() 里面 class)。此文件声明 Post class:

Model/Post.php:

<?php

namespace App\Models;

class Post
{
    public static function find($slug)
    {
        //don't write any thing in this function, 
        //i expected an blank page (not an error page like my bug)
    }
}

当用户单击时,此文件直接 url:

routes/web.php:

<?php

use Illuminate\Support\Facades\Route;
use App\Models\Post;

Route::get('/', function () {
    return view('posts');
});

Route::get('posts/{post}', function ($slug) {
    //find post with slug and pass it intos posts view (through $post variable)
    $post = Post::find($slug);
    return view([
        'post' => $post
    ]);

})
    ->where('post', '[A-z_-]+');

这个文件 return Html 页面,它是用户视图(用户在浏览器中看到的):

views/post.blade.php:

<body>
    <article>
        <?= $post ?>
    </article>
</body>
</html>

这是我所期望的: Expect result

但这是我收到的真实照片: strpos(): 参数 #1 ($haystack) 必须是字符串类型,数组给定

Error say: strpos(): Argument #1 ($haystack) must be of type string, array given

非常感谢。

在return中,方法视图应该有一个字符串,然后可能后面是数组数据

Route::get('posts/{post}', function ($slug) {
    $post = Post::find($slug);

    return view('post', [
        'post' => $post
    ]);

})
    ->where('post', '[A-z_-]+');

我已经修好了 ;) 谢谢。 问题是

php8.0-mbstring & php8.0-xml 

只需安装它们:)

同样的问题 strpos(): Argument #1 ($haystack) must be of type string, array given 但在 \vendor\fruitcake\laravel-cors 上。如果你有相同的条件,也许你可以检查 link 这个 https://github.com/fruitcake/laravel-cors/issues/565