| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php/** *------------------------------------------------------ * Model层基类 *------------------------------------------------------ * * @author    qqiu@qq.com * @date      2016/05/26 09:22 * @version   V1.0 * */namespace App\Models;use Illuminate\Database\Eloquent\Model;use Illuminate\Http\Request;use Illuminate\Support\Facades\Validator;class BaseModel extends Model{    /**     * 维护数据表中 created_at 和 updated_at 字段     */    public $timestamps = true;    protected $guarded = [];    protected $statusOptions = [        ['id' => 1, 'name' => '未激活', 'color' => 'gray'],        ['id' => 2, 'name' => '激活', 'color' => 'blue'],        ['id' => 3, 'name' => '禁用', 'color' => 'red']    ];    /**     * 多个Where     * @param Object $query     * @param array $arr ['status' => 1, 'type' => 2]     * @return Object $query     */    public function multiwhere($query, $arr)    {        if ( !is_array($arr) ) {            return $query;        }        foreach ($arr as $key => $value) {            $query = $query->where($key, $value);        }        return $query;    }    public function getValidator(Request $request, $type)    {        $validator = Validator::make($request->input('data'), [            'name' => 'required'        ], [            'name.required' => '名称必填'        ]);        return $validator;    }    public static function getOptions()    {        return self::where('id', '>', 0)->orderBy('sort')->get()->toArray();    }    public function getStatusOptions()    {        return $this->statusOptions;    }    /*     * type: name|label     */    public function getStatus($type = 'name') {        $options = $this->statusOptions;        $option = $options[0];        foreach($options as $item) {            if($item['id'] == $this['status']) {                $option = $item;                break;            }        }        if($type == 'name') return $option['name'];        else return '<div class="layui-badge layui-bg-' . $option['color'] . '">' . $option['name'] . '</div>';    }    /**     * @param $column     * @param string $type(name|label)     * @return string     */    public function getNameOrLabel($column, $type = 'name')    {        $option = Option::get($this->getTable(), $column, $this[$column], null);        if(!$option) return '';        if($type == 'name') return $option->name;        else return '<div class="layui-badge layui-bg-' . $option->label_type . '">' . $option->name . '</div>';    }    public function transMoney($money) {        return round($money * 100);    }}
 |