1

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

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

注意Object返回类型。

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

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

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

为什么会这样?

4

1 回答 1

2

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

只需先导入类:

use Illuminate\View\View;

然后将其用作返回类型:

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

    return view('products.index', ['products' => $products]);
}
于 2018-12-12T05:12:19.233 回答