У меня столько раз возникала эта ошибка в Laravel, как при использовании классов моделей, которые говорят, что этот класс не существует, а он есть. один из них был, когда я запустил App\Post::count() с возиться и получил следующее:
PHP Fatal error: Class 'App/Post' not found in Psy Shell code on line 1
и один был, когда я пытался заполнить БД моделью. это содержание модели:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Dog extends Model
{
//
}
а это сеялка:
<?php
use Illuminate\Database\Seeder;
use \App\Dog;
class DogsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Dog::query()->create(['name'=>'jack']);
}
}
с этой ошибкой: Класс "Приложение \ Собака" не найден. и это для каждой модели, которую я создаю.
любое решение? (Laravel -V: 5.4, PHP -V: 7.2, веб-сервер Apache)
@MarcinOrlowski да, но без эффекта
где физически находится ваше приложение \ собака
По какому пути находится файл модели?
@abr в каталоге / app по умолчанию
@TahaPaksu в каталоге / app
а имя файла?
@lagbox Post.php
Вопрос, ваш php-файл начинается с <? Php и заканчивается?> Или это просто <?
@abr просто начинается с <? php
Посмотрите, сможете ли вы создать собаку, используя: \ App \ Dog :: create (['name' => 'jack']); если вы все еще не можете это сделать, проверьте права доступа к файлам
Что вы вводите в Psy Shell?
Вызов изменения пространства имен @abr не работал, и даже 755 chmod не повлияли. редкая проблема :(
@abr Приложение \ Post :: count ()
Проверьте имя вашего файла, оно должно быть Post.php.
@ako да, это так.
Абсолютно проблема с автозагрузчиком композитора, попробуйте composer dump-autoload. И запустите php artisan cache:clear.
где ты написал use App\Dog;? выше public function run или выше class? Вы можете добавить полный текст кода сидера?
@ num8er конечно. я добавил.
@ako да, похоже, но я тоже пробовал их, боюсь, что нет другого выхода, кроме как создать новый проект.
установка, создание нового проекта такая же, как и запуск: rm -rf vendor && composer install
@ num8er точно так же
Вы пытаетесь загрузить \App\Dog, но имя вашего файла - Post.php ... переименуйте его в Dog.php или измените на \App\Post. Вы не можете иметь и то, и другое.
@ChinLeung нет, это два разных isuues






На некоторых серверах вам нужно добавить к приложению префикс \ like: пространство имен \ App;
Также после вышеуказанного изменения:
класс не найден не имеет ничего общего с миграцией
правда, убраны лишние шаги
После попытки исправить ту же проблему примерно через полчаса на laravel 5.8 с php v7.2 я заметил, что мой файл php начинается с разделителя вывода <?. Замена <? на <?php устранила мою проблему.
Иногда бывает необходимо очистить кеш, в моем случае сработала эта команда:
composer dump-autoload
Я надеюсь, что это сработает и для тебя
С уважением

Используйте этот путь.
>>> App\Models\Post
работал у меня ты
Используйте этот путь, надеюсь, вы получили свой ответ
App\Models\Post
Добро пожаловать в Stack Overflow. @MoviesLiker уже отправил этот ответ пару месяцев назад, и с правильным форматированием. Обязательно прочтите существующие ответы, прежде чем добавлять новые. После того, как вы это сделаете, вы все еще можете дать новый ответ, если у вас есть что-то новое, чтобы добавить в беседу. В противном случае, в будущем, когда вы заработаете больше репутации, вы сможете проголосовать за существующие ответы, чтобы убедиться, что они верны.
Не используйте этот путь
App\Post
Используйте этот путь
App\Models\Post
Похоже, что в ответе отсутствует дополнительная информация; что вы имеете в виду, говоря «Используйте этот путь»?
У меня была аналогичная проблема с App\Post::count(), но она работает, когда я добавляю модели перед публикацией. Вы тоже можете попробовать это.
App\Models\Post::count()
Итак, в вашем случае:
App\Models\Dog
composer dumpautoload?