Php 7.1 Laravel 5.7中的返回类型提示失败



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

class ProductsController extends Controller
{
public function index() : Object
{
$products = Product::all();
return view('products.index', ['products' => $products]);
}
}

请注意对象返回类型。

在运行迁移和其他一切之后,当访问索引时,我在新机器中收到以下错误:

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

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

为什么会发生这种情况?

所以,对于任何感兴趣的人来说,我从另一个论坛得到了答案:

只需先导入类:

use IlluminateViewView;

然后将其用作返回类型:

/**
* @return View
*/
public function index(): View
{
$products = Product::all();
return view('products.index', ['products' => $products]);
}

相关内容

  • 没有找到相关文章

最新更新