Find a model by its primary key or throw an exception.
public static findOrFail ( mixed $id, array $columns = [] ) : |
||
$id | mixed | |
$columns | array | |
return |
/** * Delete the model passed in * @param int This is the id that needs to delete * @return boolean */ public function delete($id) { try { $model = $this->model->findOrFail($id); $result = $model->delete(); } catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) { Message::error(pick_trans('exception.not_found', ['id' => $id])); return false; } return $result; }
/** * @param $className * @param $parameters * @param null $objectId * @return ParseResponse * @throws \Exception */ public function save($className, $parameters, $objectId = null) { $values = array(); // if update, try to get the current object at first if ($objectId) { $this->object = $this->object->findOrFail($objectId); } foreach ($parameters as $key => $val) { if (in_array($key, $this->columns)) { if (is_array($val) && ($operation = array_get($val, '__op'))) { switch ($operation) { case "Increment": $val = $this->object->{$key} ? $this->object->{$key} + $val['amount'] : $val['amount']; break; case "decrement": $val = $this->object->{$key} - $val['amount']; break; case "Delete": $val = null; break; case "Batch": // $ops = $val['ops']; // foreach ($ops as $ops_key => $ops_val) { // if ($ops_val['__op'] == 'AddRelation') { // foreach ($ops_val['objects'] as $objects_key => $objects_val) { // $relation_type = $objects_val['__type']; // $relation_class_name = $objects_val['className']; // $relation_class_name = ParseHelperClass::removeUnderscoreFromClassName($relation_class_name); // to remove '_' character if founded in the name of class _User // $relation_objectId = $objects_val['objectId']; // $relation_object = ParseHelperClass::createObject($relation_class_name); // $updatedAt = ''; // // if (!$relation_object) { // return ParseHelperClass::error_message_return('105'); // } // // $object->find($objectId)->$key()->sync([$relation_objectId], false); // // $relation_data_of_object = $object::find(60)->$key()->where($relation_class_name . '_id', // '=', $relation_objectId)->get(); // // foreach ($relation_data_of_object as $relation_data) { // $updatedAt = $relation_data->pivot->createdAt; // } // } // // return array( // "updatedAt" => Carbon::parse($updatedAt)->format('Y-m-d\TH:i:s.z\Z') // ); // } // } break; } } $values[$key] = $val; } elseif (in_array($key, $this->relations)) { // } else { if ($key != "ACL") { ParseHelper::throwException('210', $key); } } } $this->object->fill($values); try { $event = $this->object->getKey() ? 'update' : 'insert'; \Event::fire("before.{$event}." . $this->object->getTable(), $this->object); $this->object->save(); //create new object // now we can attach the relations foreach ($parameters as $key => $val) { if (in_array($key, $this->relations)) { if ($operation = array_get($val, '__op')) { switch ($operation) { case "Delete": $this->object->{$key}()->delete($val); break; } } elseif ($this->object->{$key}() instanceof BelongsTo) { $this->object->{$key}()->associate($val); } elseif (!$this->object->{$key}() instanceof BelongsTo) { $this->object->{$key}()->save($val); } else { ParseHelper::throwException(105); } } } \Event::fire("after.{$event}." . $this->object->getTable(), $this->object); } catch (\Exception $ex) { ParseHelper::throwException(141, $ex->getMessage()); } }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $this->Model->findOrFail($id)->delete(); return \Redirect::route($this->routeName . 'index'); }