public function destroy() { $tag = $this->tag; $delete = InvoiceTag::transaction(function () use($tag) { return $tag->destroy(); }); if (!$delete) { return redirect_message(array('admin', $this->get_class()), array('_flash_message' => '刪除失敗!')); } return redirect_message(array('admin', $this->get_class()), array('_flash_message' => '刪除成功!')); }
public function update() { if (!$this->has_post()) { return redirect_message(array('admin', $this->get_class(), $this->invoice->id, 'edit'), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。')); } $posts = OAInput::post(); $cover = OAInput::file('cover'); // if (!((string)$this->invoice->cover || $cover)) // return redirect_message (array ('admin', $this->get_class (), $this->invoice->id, 'edit'), array ( // '_flash_message' => '請選擇圖片(gif、jpg、png)檔案!', // 'posts' => $posts // )); if ($msg = $this->_validation_posts($posts)) { return redirect_message(array('admin', $this->get_class(), $this->invoice->id, 'edit'), array('_flash_message' => $msg, 'posts' => $posts)); } if ($columns = array_intersect_key($posts, $this->invoice->table()->columns)) { foreach ($columns as $column => $value) { $this->invoice->{$column} = $value; } } $invoice = $this->invoice; $update = InvoiceTag::transaction(function () use($invoice, $cover) { if (!$invoice->save()) { return false; } if ($cover && !$invoice->cover->put($cover)) { return false; } return true; }); if (!$update) { return redirect_message(array('admin', $this->get_class(), $this->invoice->id, 'edit'), array('_flash_message' => '更新失敗!', 'posts' => $posts)); } if (($del_ids = array_diff(column_array($invoice->pictures, 'id'), $posts['pic_ids'])) && ($pictures = InvoicePicture::find('all', array('select' => 'id, name', 'conditions' => array('id IN (?)', $del_ids))))) { foreach ($pictures as $picture) { InvoicePicture::transaction(function () use($picture) { return $picture->destroy(); }); } } if ($pictures = OAInput::file('pictures[]')) { foreach ($pictures as $picture) { InvoicePicture::transaction(function () use($picture, $invoice) { return verifyCreateOrm($pic = InvoicePicture::create(array_intersect_key(array_merge($picture, array('invoice_id' => $invoice->id)), InvoicePicture::table()->columns))) && $pic->name->put($picture); }); } } return redirect_message(array('admin', $this->get_class()), array('_flash_message' => '更新成功!')); }