A entidade de categoria representa uma categoria dos itens da plataforma, utilizado para agrupar itens com características em comum em uma vitrine.
Dados básicos
Os dados básicos da categoria podem ser acessados a partir das seguintes propriedades:
- id
Número de identificação - depth
Nível de profundidade da categoria - name
Nome da categoria - count
Contador com a quantidade de itens relacionados a essa categoria - has_parent
Booleano que indica se a categoria tem ou não uma categoria pai - has_children
Booleano que indica se a categoria tem ou não categorias filhas - parent
Instância da categoria pai - children
Coleção de instâncias das categorias filhas - urls
Coleção das URLs da categoria
Campos extras
Para carregar campos extras deve-se, a partir de uma instância da entidade Category, chamar a propriedade extraFields
. Essa propriedade contém uma Collection com todos os campos extras relacionados à categoria e seus respectivos valores, onde cada índice da coleção pode ser acessado pelo slug do campo extra. Exemplo:
$category->extraFields->get('slug')
Para acessar os valores de cada campo extra, a propriedade values
está disponível e retorna uma nova instância do objeto Collection com cada um dos n valores que uma categoria pode ter para o mesmo campo extra. Dessa forma, para acessar os valores dos campos extras de uma categoria, pode-se fazer:
@foreach($category->extraFields as $slug => $extraField)
// Label do campo extra
{{$extraField->label}}
// Slug do campo extra que pode ser acessado além do valor encontrado em $slug
{{$extraField->slug}}
// Valores do campo extra
@foreach($extraField->values as $value)
// Para campos de valores simples (texto, numerico) ou valores grandes (textarea, wysiwyg)
{{$value->value}}
// Para campos com opções
{{$value->extraFieldOption->key}}
{{$value->extraFieldOption->label}}
{{$value->extraFieldOption->order}}
// Para campos de relação com entidade, onde 'record' retorna uma instancia da entidade relacionada
{{$value->record->...}
// Para campos de arquivos/imagens, podendo ser combinado com o Thumbor
{{$value->source}}
@endforeach
@endforeach
O exemplo acima mostra como percorrer todos os valores de todos os campos extras através de dois loops. Para pegar os valores para um único campo extra, a instrução pode ser um pouco mais simples. Veja a seguir:
{{ $category->extraFields->get('slug') }}
O código acima retornará a relação da categoria com o campo extra. Caso a relação não exista, ou seja, caso a categoria não tenha nenhum valor com esse campo extra, o retorno será vazio (null
). É uma boa prática verificar se a relação é diferente de vazio para prosseguir:
@if(null !== $category->extraFields->get('slug'))
...
@endif
Uma vez que exista um ou mais valores para o campo extra para a categoria a propriedade values
retornará uma coleção com todos esses valores e, como mostrado acima, poderá ser iterado num loop (foreach, for e etc) ou ainda, caso tenha somente um valor, o método first()
da coleção pode ser chamado para pegar o primeiro registro de valor:
@if(null !== $category->extraFields->get('slug'))
// Para campos de valores simples (texto, numerico) ou valores grandes (textarea, wysiwyg)
{{ $category->extraFields->get('slug')->values->first()->value }}
// Para campos com opções
{{ $category->extraFields->get('slug')->values->first()->extraFieldOption->key }}
{{ $category->extraFields->get('slug')->values->first()->extraFieldOption->label }}
{{ $category->extraFields->get('slug')->values->first()->extraFieldOption->order }}
// Para campos de relação com entidade, onde 'record' retorna uma instancia da entidade relacionada
{{ $category->extraFields->get('slug')->values->first()->record->... }}
// Para campos de arquivos/imagens, podendo ser combinado com o Thumbor
{{ $category->extraFields->get('slug')->values->first()->source }}
@endif
Comentários
0 comentário
Por favor, entre para comentar.