Я собираю проект, следуя этому руководству: Laravel 8: Базовое руководство по блогу CRUD с Bootstrap https://www.parthpatel.net/laravel-8-crud-blog-tutorial/
Когда индекс PostController имеет
public function index()
{ $posts = Post::all();
return View('posts.index', compact('posts'));
}
Исключение View [posts\index] not found
но когда возврат
return view::make('posts.index', compact('posts'));
Исключением является
Class 'App\Http\Controllers\View' not found
Может кто-нибудь объяснить разницу? Каков правильный синтаксис для возврата
view
— это вспомогательная функция для работы с той же фабрикой представлений, которую использует фасад:
return view('posts.index', compact('posts'));
Использование View::make
— это использование фасада View
в качестве статического прокси-сервера для фабрики представлений:
return View::make('posts.index', ...);
Поскольку вы не указали псевдоним, класс View
PHP предполагает, когда вы ссылаетесь на View
, что вы имеете в виду View
в текущем объявленном пространстве имен файла, то есть App\Http\Controllers
, поэтому он ищет App\Http\Controllers\View
. Вам нужно будет использовать псевдоним этой ссылки для View
или использовать его полное имя класса:
use Illuminate\Support\Facades\View;
...
return View::make(...);
Или без псевдонима:
return \Illuminate\Support\Facades\View::make(...);
view(...)
и View::make(...)
вызывают вызов make
в фабрике представлений для создания нового экземпляра представления.
Документы Laravel 8.x - Представления - Создание и визуализация представленийview()
View::make()
Прочитайте ответ @lagbox, чтобы ознакомиться с соглашением об именах. Классы должны быть написаны с заглавной буквы (PascalCase), а функции должны быть написаны с начальной строчной буквы (camelCase). Также проверьте здесь для хорошей практики.