/** * Get additional content data selected * * @param $result = Query result */ public static function post_find($result) { if ($result !== null) { if (is_array($result)) { foreach ($result as $item) { // It will first check if we already have result in temporary result, // and only execute query if we dont. That way we dont have duplicate queries // Get group attributes $item->get_attributes = static::lazy_load(function () use($item) { $attributes = Model_Attribute_To_Groups::find(function ($query) use($item) { return $query->where('group_id', $item->id); }, 'attribute_id'); if (!empty($attributes)) { $attributes = '(' . implode(',', array_keys($attributes)) . ')'; return Model_Attribute::find(function ($query) use($attributes) { return $query->where('id', 'IN', \DB::expr($attributes))->order_by('sort', 'asc'); }, 'id'); } return array(); }, $item->id, 'attributes'); } } } // return the result return $result; }
public function action_delete($id = false) { if (is_numeric($id)) { // Get news item to edit if ($item = Model_Attribute_Group::find_one_by_id($id)) { // Delete item try { // Delete relation to attributes $attributes = Model_Attribute_To_Groups::find_by_group_id($item->id); if (!is_null($attributes)) { foreach ($attributes as $attribute) { $attribute->delete(); } } $item->delete(); \Messages::success('Attribute group successfully deleted.'); } catch (\Database_Exception $e) { // show validation errors \Messages::error('<strong>There was an error while trying to delete attribute group</strong>'); // Uncomment lines below to show database errors //$errors = $e->getMessage(); //\Messages::error($errors); } } } \Response::redirect(\Input::referrer(\Uri::create('admin/attribute/group/list'))); }