Исключение при создании нового ресурса в Laravel Nova — класс ‘App \ Post’ не найден

У меня есть новая установка Laravel Nova. Приборная панель подходит нормально. Но когда я добавляю новый ресурс, используя php artisan nova:resource Post и перезагрузите приборную панель, это выдает ошибку. Когда я удаляю оскорбительную модель из папки Nova, панель снова работает. Я точно следую пошаговым инструкциям из Nova Docs. Я не могу понять это.

Скриншот
Скриншот

navigation.blade.php

@if (count(Nova::availableResources(request())))
<h3 class="flex items-center font-normal text-white mb-6 text-base no-underline">
<svg class="sidebar-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path fill="var(--sidebar-icon)" d="M3 1h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2H3c-1.1045695 0-2-.8954305-2-2V3c0-1.1045695.8954305-2 2-2zm0 2v4h4V3H3zm10-2h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2h-4c-1.1045695 0-2-.8954305-2-2V3c0-1.1045695.8954305-2 2-2zm0 2v4h4V3h-4zM3 11h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2H3c-1.1045695 0-2-.8954305-2-2v-4c0-1.1045695.8954305-2 2-2zm0 2v4h4v-4H3zm10-2h4c1.1045695 0 2 .8954305 2 2v4c0 1.1045695-.8954305 2-2 2h-4c-1.1045695 0-2-.8954305-2-2v-4c0-1.1045695.8954305-2 2-2zm0 2v4h4v-4h-4z"/>
</svg>
<span class="sidebar-label">{{ __('Resources') }}</span>
</h3>

@foreach(Nova::groupedResources(request()) as $group => $resources)
@if (count($resources) > 0)
@if (count(Nova::groups(request())) > 1)
<h4 class="ml-8 mb-4 text-xs text-white-50% uppercase tracking-wide">{{ $group }}</h4>
@endif

<ul class="list-reset mb-8">
@foreach($resources as $resource)
@if (! $resource::$displayInNavigation)
@continue
@endif

<li class="leading-tight mb-4 ml-8 text-sm">
<router-link :to="{
name: 'index',
params: {
resourceName: '{{ $resource::uriKey() }}'
}
}" class="text-white text-justify no-underline dim">
{{ $resource::label() }}
</router-link>
</li>
@endforeach
</ul>
@endif
@endforeach
@endif

Я вижу, что Клинок зовет @foreach($resources as $resource), где я предполагаю, что код не работает. Документы говорят:

«Автоматическая регистрация — по умолчанию все ресурсы в каталоге app / Nova будут автоматически зарегистрированы в Nova. Вам не нужно регистрировать их вручную. Прежде чем ресурсы станут доступны на вашей панели Nova, вы должны зарегистрировать их в Nova. Ресурсы получают зарегистрирован в файле вашего приложения / Providers / NovaServiceProvider.php. Этот файл содержит различные коды конфигурации и начальной загрузки, связанные с вашей установкой Nova. «

Но когда я смотрю на app/Providers/NovaServiceProvider.php в списке нет ресурсов:

<?php
namespace App\Providers;

use Laravel\Nova\Nova;
use Laravel\Nova\Cards\Help;
use Illuminate\Support\Facades\Gate;
use Laravel\Nova\NovaApplicationServiceProvider;

class NovaServiceProvider extends NovaApplicationServiceProvider
{
public function boot()
{
parent::boot();
}

protected function gate()
{
Gate::define('viewNova', function ($user) {
return in_array($user->email, [
//
]);
});
}

protected function cards()
{
return [
new Help,
];
}

public function tools()
{
return [];
}
}

К сожалению, когда я вставляю предложенный код для ручной регистрации ресурсов, он все равно не работает.

<?php

use App\Nova\User;
use App\Nova\Post;

protected function resources()
{
Nova::resourcesIn(app_path('Nova'));

Nova::resources([
User::class,
Post::class,
]);
}

1

Решение

Да, пропущено создание модели приложения \ Post и миграция с заголовком и телом

php artisan make:model Post -m

Также добавьте в миграцию сообщений, если вы из учебника LaraCasts

$table->char('title', 100);
$table->text('body');
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]