Laravel Nova получить доступ к идентификатору модели из ресурса - PullRequest
0 голосов
/ 10 января 2019

Имея:

Listing:
id
user_id
...


ListingTranslation:
id
listing_id
language_id
...

Language
id
iso_code
...

One to Many Relationship between Listing and ListingtTranslation

Listing hasMany ListingTranslation
ListingTranslation belongsTo Listing

One to Many Relationship between Language and ListingTranslation

Language hasMany ListingTranslation
ListingTranslation belongsTo Language

Я ищу способ доступа к listing_id из ListingTranslation ресурса.

Связанное поле Listing объявлено в ListingTranslation Resource:

BelongsTo::make(__('Listing'), 'listing', 'App\Nova\Listing'),

Цель состоит в том, чтобы иметь возможность выбора поля в Listing Translation Resource с доступными языками, поэтому Listing может иметь только один ListingTranslation для доступных Language. Поле выбора языка покажет ошибку проверки, если пользователь выберет язык, который уже создал ListingTranslation для этого конкретного Language.

Отношения загружены в мой ресурс ListingTranslation:

public static $with = [
    'listing'
];

Я могу использовать его в методах заголовков и субтитров. Однако я не могу получить к нему доступ из метода fields:

BelongsTo::make(__('Language'), 'language', 'App\Nova\Language')
                ->rules("unique:listing_translations,language_id,NULL,id,listing_id,{$this->listing->id}"),
...