> For the complete documentation index, see [llms.txt](https://waad-mawlood.gitbook.io/model-metadata/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://waad-mawlood.gitbook.io/model-metadata/basics/markdown-1/get-metadata.md).

# Get Metadata

## 🔥 `getMetadata`&#x20;

Get all metadata records associated with the model as an array

```php
// Syntax
$model->getMetadata(): array
```

#### Example Usage

```php

// If metadataNameIdEnabled is true, each metadata record will include its ID
class Post extends Model
{
    use HasManyMetadata;
    
    public $metadataNameIdEnabled = true;
    public $metadataNameId = 'id';
    ...........
}

$post->getMetadata();
/** will return:
* [
*     [
*        'id' => '01jj9s16xcze6byv94fv2f6gc5',   // <<<---------
*        'theme' => 'dark',
*        'language' => 'Arabic',
*     ],
*     [
*        'id' => '01jj9rwvm0g3sypyyb91v5x2gz',   // <<<---------
*        'theme' => 'light',
*        'language' => 'English',
*     ],
* ]
*/

```

{% hint style="info" %}
Read more for append id [Use in Model](/model-metadata/basics/markdown-1/use-in-model.md#custom-append-id-with-run-time)
{% endhint %}

***

## 🔥 `getMetadataCollection`

{% hint style="success" %}
It's an Alias `getMetadata` but return as `Collection`&#x20;
{% endhint %}

```php
// Syntax
$model->getMetadataCollection(): Collection
```

***

## 🔥 `getMetadataById`

Get a specific metadata record using its ID.

Retrieves metadata values from the metadata column. If keys are provided only the specified keys will be returned.

```php
// Syntax
// @param $id string
// @param $keys array|Collection|string|int|null
$model->getMetadataById($id, $keys = null): array
```

#### Example Usage Without Keys Parameter

```php

// Create Metadata
$model->createMetadata([
    'language' => 'English',
    'is_visible' => true, 
    'theme' => 'dark',
    'year' => 2019,
    'rating' => 4.5,
    'tags' => ['action', 'drama'],  // array data type
]);


// Using Without keys Parameter
$model->getMetadataById($id);
/**
* Will return array:
* [
*    'language' => 'English',
*    'is_visible' => true,
*    'theme' => 'dark',
*    'year' => 2019,
*    'rating' => 4.5,
*    'tags' => [
*        0 => 'action',
*        1 => 'drama',
*    ]
* ]
*/

```

#### Example Usage With Keys Parameter

```php
    
// +++++++++++ Using Keys array, Collection +++++++++++
$model->getMetadataById($id, ['theme', 'language']);
$model->getMetadataById($id, collect(['theme', 'language']));
/**
* Will return array:
* [
*    'theme' => 'dark',
*    'language' => 'English',
* ]
*/


// +++++++++++ Using Individual Key +++++++++++
$model->getMetadataById($id, 'theme');
/**
* Will return array:
* [
*    'theme' => 'dark',
* ]
*/

$model->getMetadataById($id, 'tags');
/**
* Will return array:
* [
*    'tags' => [
*        0 => 'action',
*        1 => 'drama',
*    ]
* ]
*/

$model->getMetadataById($id, 3); // if metadata saved list array
$model->getMetadataById($id , null); // will return all content metadata as array

```

<table><thead><tr><th width="186">Parameters</th><th>Data Types</th></tr></thead><tbody><tr><td><mark style="color:red;">id</mark></td><td><mark style="color:purple;"><code>string</code></mark></td></tr><tr><td><mark style="color:red;">keys</mark></td><td><mark style="color:purple;"><code>array, Collection, string, int, null</code></mark></td></tr></tbody></table>

{% hint style="info" %} <mark style="color:green;">Return Type ⇒</mark> <mark style="color:orange;">array</mark>
{% endhint %}

***

## 🔥 `getKeyMetadataById`

Get a single value from a metadata record by its ID and key.

```php
// Syntax
/*
* @param $id string
* @param $key string|int
*/
$model->getKeyMetadataById($id, $key): string|int|float|bool|array|null
```

#### Example Usage

```php

$model->getKeyMetadataById($id, 'language'); // return: 'English'
$model->getKeyMetadataById($id, 'is_visible'); // return: true
$model->getKeyMetadataById($id, 'theme'); // return: 'dark'
$model->getKeyMetadataById($id, 'year'); // return: 2019
$model->getKeyMetadataById($id, 'rating'); // return: 4.5
$model->getKeyMetadataById($id, 'not_exists'); // return null
$model->getKeyMetadataById($id, 3); // return (4th index) item in list array

$model->getKeyMetadataById($id, 'tags');
/**
* Will return:
* [
*    0 => 'action',
*    1 => 'drama',
* ]
*/


```

<table><thead><tr><th width="186">Parameters</th><th>Data Types</th></tr></thead><tbody><tr><td><mark style="color:red;">id</mark></td><td><mark style="color:purple;"><code>string</code></mark></td></tr><tr><td><mark style="color:red;">key</mark></td><td><mark style="color:purple;"><code>string, int</code></mark></td></tr></tbody></table>

{% hint style="info" %} <mark style="color:green;">Return Type ⇒</mark> <mark style="color:orange;">array, string, int, float, bool, null</mark>
{% endhint %}
