Добавить динамически созданные атрибуты в ресурс - PullRequest
0 голосов
/ 25 мая 2019

Я работаю над проектом в Laravel, где для настойчивости я использую nosql graph на основе database под названием neo4j. Дело в том, что для данной модели по некоторым причинам администратор приложенияможет создавать новые поля в пользовательском интерфейсе и давать имена и правила проверки. Это означает, что часть из атрибутов, определенных в атрибутах $fillable, новые поля добавляются динамически. И для управления этим я создал гибкое правило проверки для данногомодель для динамического обновления правил проверки с учетом новых полей, и для их сохранения я $post=Post::forceCreate($data); игнорирую $fillable attributes при создании data, в базу данных эти поля добавляются successully. Единственная проблема, которая у меня сейчасв том, что невозможно отправить их в PostResource, который я определил так:

class PostResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'slug' => $this->slug,
            'title' => $this->title,
            'body' => $this->body,
            'status' => $this->status,
            'image' => $this->image,
            'read_time' => $this->read_time,
            'link' => $this->link,
            'published_at' => $this->published_at,
            'authors' => $this->authors,
            'relatted_spaces' => $this->spaces,
            'tags' => $this->tags()->with('filters')->get(),
        ];
    }
}

Этот выше ресурс работает нормально, он может быть определен только с известными fields или relashionship getters. Так какя могу добавить динамически добавленные поля в ресурсы, когда я даже не знаю, какие там будут имена, и они изначально не существуют?

...