Laravel nova «Имя класса должно быть допустимым объектом или строкой» В поле self BelongsTo

Это код моего "Стандартного" ресурса

class Standard extends Resource
{

    public static $model = '\\PackageName\\Http\\Models\\Standard';

    public static $title = 'parent_id';

    public static $search = [
        'id',
    ];

    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            Text::make('ASN Id', 'short_asn_id')
            ->sortable(),

            BelongsTo::make('Parent', 'getParent', 'app\Nova\Standard'),
            HasMany::make('Children', 'getchildren', 'app\Nova\Standard'),
        ];
    }
}

И вот такой код модели =>

public function getParent()
{
    return $this->belongsTo(static::class, 'parent_id');
}

public function getChildren()
{
    return $this->hasMany(static::class, 'parent_id','id');
}

Я хочу установить родительские дочерние отношения на той же таблице. К сожалению, я постоянно получаю сообщение об ошибке «Имя класса должно быть допустимым объектом или строкой».

Я попытался передать имя класса, например \App\Nova\Standard::класс. Не работает.

Я новичок в Nova и не мог понять точную проблему.

Нова версия последняя. Версия Laravel 5.7.

Стоит ли изучать 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
0
1 303
1

Ответы 1

Дважды проверьте пространство имен вашей модели и ресурса.

Почему в вашем атрибуте \\ есть $model? Обычно пространство имен App\Standard, если у вас другое пространство имен, изменяется соответствующим образом. Обычно приложение в пространстве имён пишется с большой буквы, App\Nova\Standard

class Standard extends Resource
{

    public static $model = 'App\Standard'; // Modify according to your namespace
    ...

    BelongsTo::make('Parent', 'getParent', 'App\Nova\Standard'), // Capital A
}

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