alvaro-canepa/oc-trait-utils

OctoberCMS Util 特性

1.0.1 2019-08-26 09:55 UTC

This package is auto-updated.

Last update: 2024-09-26 20:43:15 UTC


README

OctoberCMS 的 Util 特性

安装

该包需要 PHP 7.2+ 并与 OctoberCMS 兼容。

在您的 composer.json 文件中包含此包

    "require": {
        ...
        "alvaro-canepa/oc-trait-utils": "~1.0",
    },

使用示例

    class myModel extend Model {
        use PlanetaDelEste\Traits;

        ...

        /**
         * @param \October\Rain\Database\Builder|static $query
         * @param array                                 $data
         *
         * @return \October\Rain\Database\Builder|static
         * @throws \Exception
         */
        public function scopeFrontend($query, $data)
        {
            $columns = $this->getFullTextIndexFields();

            // Search by columns in $data array
            foreach ($data as $column => $value) {
                if (in_array($column, $columns)) {
                    $query->where($column, 'LIKE', "%{$value}%");
                }
            }

            // Search in all text columns
            if ($q = array_get($data, 'query')) {
                foreach ($columns as $column) {
                    $query->where($column, 'LIKE', "%{$q}%", 'or');
                }
            }

            return $query;
        }
    }

    $myModel = myModel::find(1);

    // Methods

    /*
        * Return array with all model columns.
        *      Example: ['id', 'created_at', 'updated_at', 'name', 'description']
        */
    $myModel->getTableColumns();

    /*
        *  Return array with all text ('VARCHAR', 'TEXT', 'CHAR') columns.
        *      Example: ['name', 'description']
        */
    $myModel->getFullTextIndexFields();