PHP 7.1返回类型提示在Laravel 5.7中失败

时间:2018-12-11 06:11:18

标签: php type-hinting laravel-5.7 php-7.1 laravel-controller

我刚刚为我正在处理的项目克隆了一个存储库。不太记得它运行的前一台机器的细节,但是在这台机器上它使用的是php 7.1,我升级到了Laravel 5.7。问题在于,在我以前的机器中,这段代码正在运行:

[1, 1]
[1, 1]

通知 对象返回类型。

运行迁移和其他所有操作后,在访问索引时,我在新计算机上收到以下错误:

  

App \ Http \ Controllers \ ProductsController :: index()的返回值必须是App \ Http \ Controllers \ Object的实例,返回的Illuminate \ View \ View的实例

与返回类型提示为Object有关。我怎么知道因为如果我删除它,一切都会像魅力一样。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

因此,对于任何感兴趣的人,我都从另一个论坛获得了答案:

只需首先导入该类:

use Illuminate\View\View;

,然后将其用作返回类型:

/**
 * @return View
 */
public function index(): View
{
    $products = Product::all();

    return view('products.index', ['products' => $products]);
}