Я только что клонировал репозиторий для проекта, над которым я работал. Не совсем помню особенности предыдущей машины, на которой он работал, но на этой он использует 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
которая связана с подсказкой возвращаемого типа, являющейся объектом. Откуда я это знаю? Потому что, если я уберу его, все будет работать как шарм.
Почему это происходит?
Итак, для всех, кто интересуется, я получил ответ с другого форума:
Просто сначала импортируйте класс:
use Illuminate\View\View;
и затем используйте его как тип возвращаемого значения:
/**
* @return View
*/
public function index(): View
{
$products = Product::all();
return view('products.index', ['products' => $products]);
}
Других решений пока нет …