get()->pluck('name','id')->toArray(); } public static function getOptionsWithSpecie() { $varieties = Variety::with('specie')->get(); $data = []; foreach ($varieties as $variety) { $data[$variety->id] = (isset($variety->specie->name) ? $variety->specie->name . ' ' : '') . $variety->name; } asort($data, SORT_NATURAL | SORT_FLAG_CASE); return $data; } public static function getAll() { return Variety::orderBy('name','asc')->get(); } public static function get($id) { return Variety::findOrFail($id); } public static function getFull($id) { $variety = self::get($id); $data = $variety->toArray(); $data['tags'] = self::getTagsByVariety($variety); return $data; } public static function getTagsByVariety($variety) { return Tag::getTagsByModel($variety); } public static function storeFull($data) { $images = isset($data['images']) ? $data['images'] : false; $tags = isset($data['tags']) ? $data['tags'] : false; unset($data['images']); unset($data['tags']); $variety = self::store($data); self::storeImages($variety, $images); self::storeTags($variety, $tags); return $variety; } public static function store($data) { return isset($data['id']) ? self::update($data) : self::create($data); } public static function create($data) { return Variety::create($data); } public static function update($data, $id = false) { $id = $id ? $id : $data['id']; $variety = self::get($id); $ret = $variety->update($data); return $variety; } public static function destroy($id) { return Variety::destroy($id); } public static function storeTags($variety, $tags) { return Tag::storeTags($variety, $tags); } public static function storeImages($variety, $files) { return Media::storeImages($variety, $files); } public static function getImages($id) { return Media::getImages(self::get($id)); } public static function deleteImage($id, $index) { return Media::deleteImage(self::get($id), $index); } public static function exportExcel() { return Excel::download(new VarietiesExport, 'varieties.xlsx'); } }