Models
Introduction
All models in the Streams Platform eventually extends Laravel's Eloquent models. This documentation will assume you are already familiar with Laravel models.
Base Models
All models in the Streams Platform will extend the base \Anomaly\Streams\Platform\Model\EloquentModel class and therefore will have a number of basic features unique to the Streams Platform.
Entry Models
Entry models are specific to the streams API. Not all models are entry models but all entry models extend base models.
Hooks
All models are Hookable.
Translatable
All models support translation. Though all models may not be translatable.
Check Translatable
You can use the isTranslatable method to check if a model is translatable.
if ($entry->isTranslatable()) {
echo "Yes!";
}
{% if entry.isTranslatable() %}
Yes!
{% endif %}
### Translating Queries
Please see [query builder](../database/query-builder) documentation.
### Translating Entries
You can use the `translate` method to return the translation of a given `locale` with optional `withFallback`.
> This is only necessary if non-active locale values are desired.{.tip}
```php
$entry->translate($locale = null, $withFallback = false);
echo $entry->translate('fr', true)->name;
{{ entry->translate('fr', true).name }}
All Translations
You can return a collection of translations with the getTranslations method.
foreach ($entry->getTranslations() as $translation) {
echo "{$translation->name} ({$translation->locale})";
}
{% for translation in entry.getTranslations() %}
{{ translation.name }} ({{ translation.locale }})
{% endfor %}