Я предполагаю, что это может быть какое-то соглашение, которого я не понимаю.
У меня есть модель под названием 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, чтобы соответствовать соглашению об именах? Или почему это пытается вызвать имя файла, отличное от имени класса, которое я говорю ему искать?
используйте php artisan make:model ModelName -m. Вам не нужно упоминать имя таблицы при использовании этой команды. Убедитесь, что название вашей модели стоит в единственном числе






Я думаю, что это из-за кеша автозагрузки. Итак, запустите следующую команду в корневом каталоге вашего проекта:
composer dumpautoload
Надеюсь, что это работает.
Я думаю, это все. Через несколько минут он позволит мне принять и ответить. Я отмечу, что это принято.
@Jhorra Рад помочь тебе, братан.
Попробуйте использовать это:
composer dump-autoload
Добавить опцию "-o" при запуске автозагрузки дампа.
composer dump-autoload -o
попробуй почистить кеш и обновить composer.