Skip to content
Snippets Groups Projects
LanguageModel.php 1 KiB
Newer Older
/**
 * @copyright  2020 Podlibre
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
 */

namespace App\Models;

use CodeIgniter\Model;

class LanguageModel extends Model
{
    protected $table = 'languages';
    protected $primaryKey = 'id';

    protected $allowedFields = ['code', 'native_name'];
    protected $returnType = \App\Entities\Language::class;
    protected $useSoftDeletes = false;

    protected $useTimestamps = false;

    public function getLanguageOptions()
    {
        if (!($options = cache('language_options'))) {
            $languages = $this->findAll();

            $options = array_reduce(
                $languages,
                function ($result, $language) {
                    $result[$language->code] = $language->native_name;
                    return $result;
                },
                []
            );

            cache()->save('language_options', $options, DECADE);
        }

        return $options;
    }