Laravel nova "Имя класса должно быть допустимым объектом или строкой" На поле BelongsTo - PullRequest
0 голосов
/ 14 февраля 2019

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

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 :: class Не работает.

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

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

1 Ответ

0 голосов
/ 14 февраля 2019

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

Почему в вашем атрибуте $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
}
...