Laravel - модель вызова из контроллера ищет неправильное имя файла

Я предполагаю, что это может быть какое-то соглашение, которого я не понимаю.

У меня есть модель под названием Ingredient в основной папке приложения.

namespace App;

use Illuminate\Database\Eloquent\Model;

class Ingredient extends Model
{
    protected $table = "ingredients";
}

Затем у меня есть контроллер, пытающийся вызвать это приложение.

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Config;
use App\Ingredient;

class IngredientController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return response()
            ->json([
                'status' => 'ok',
                'ingredients' => Ingredient::all()
            ]);
    }
}

Кажется, все в порядке. Я получаю ошибку сервера 500, хотя:

include(C:\\Dev\\ScratchApi\\vendor\\composer/../../app/Ingredients.php): failed to open stream: No such file or directory

Имя файла модели Ingredient.php

Нужно ли мне переименовывать файл в Ingredients.php, чтобы соответствовать соглашению об именах? Или почему это пытается вызвать имя файла, отличное от имени класса, которое я говорю ему искать?

попробуй почистить кеш и обновить composer.

Happy Coding 19.07.2019 12:01

используйте php artisan make:model ModelName -m. Вам не нужно упоминать имя таблицы при использовании этой команды. Убедитесь, что название вашей модели стоит в единственном числе

Ankush Sood 19.07.2019 12:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
365
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я думаю, что это из-за кеша автозагрузки. Итак, запустите следующую команду в корневом каталоге вашего проекта:

composer dumpautoload

Надеюсь, что это работает.

Я думаю, это все. Через несколько минут он позволит мне принять и ответить. Я отмечу, что это принято.

Jhorra 19.07.2019 12:09

@Jhorra Рад помочь тебе, братан.

Sagar Gautam 19.07.2019 12:10

Попробуйте использовать это:

composer dump-autoload

Добавить опцию "-o" при запуске автозагрузки дампа.

composer dump-autoload -o

Другие вопросы по теме