示例#1
0
文件: User.php 项目: sebalb/shopapp
 public function update(UserAuth $user, $id)
 {
     $user = \App\Models\User::find($id) ?: $this->notFoundJson();
     $this->validateJson(request()->all(), $rules = ['first_name' => 'alpha|max:60', 'last_name' => 'alpha|max:60', 'email' => 'email|unique:users,email,' . $id . ',id', 'phone' => 'max:30', 'password' => 'sometimes|required|min:3|max:20|confirmed', 'password_confirmation' => 'sometimes|required']);
     $user->update(reqOnlyIfExists(array_keys($rules)));
     return $user;
 }
示例#2
0
 public function update(UserAuth $user, $id)
 {
     $product = \App\Models\Product::find($id) ?: $this->notFoundJson();
     $this->validateJson(request()->all(), $rules = ['title' => 'sometimes|required|title|min:4|max:60', 'subtitle' => 'title|min:4|max:120', 'description' => 'sometimes|required', 'price' => 'sometimes|required|numeric', 'stock_initial' => 'integer', 'stock_available' => 'integer', 'starts' => 'sometimes|required|date_format:d/m/Y', 'ends' => 'sometimes|required|date_format:d/m/Y', 'is_active' => 'sometimes|required|boolean']);
     $data = reqOnlyIfExists(array_keys($rules));
     if (isset($data['starts'])) {
         $data['starts'] = \DateTime::createFromFormat('d/m/Y', $data['starts']);
     }
     if (isset($data['ends'])) {
         $data['ends'] = \DateTime::createFromFormat('d/m/Y', $data['ends']);
     }
     $dataAll = array_merge($product->toArray(), $data);
     if (is_string($dataAll['starts'])) {
         $dataAll['starts'] = \DateTime::createFromFormat('d/m/Y', $dataAll['starts']);
     }
     if (is_string($dataAll['ends'])) {
         $dataAll['ends'] = \DateTime::createFromFormat('d/m/Y', $dataAll['ends']);
     }
     // price:
     if (isset($data['price']) && $data['price'] < 0) {
         $this->errorValidateJson(['price' => 'price must be positive']);
     }
     // stock:
     if (isset($data['stock_initial']) && $data['stock_initial'] < $dataAll['stock_available']) {
         $this->errorValidateJson(['stock_initial' => 'stock initial must be greater or equal than stock available']);
     }
     if (isset($data['stock_available']) && $data['stock_available'] > $dataAll['stock_initial']) {
         $this->errorValidateJson(['stock_available' => 'stock available must be lower or equal than stock initial']);
     }
     // start / end dates:
     if (isset($data['starts']) && $data['starts'] >= $dataAll['ends']) {
         $this->errorValidateJson(['starts' => 'start date must be before ends date']);
     }
     if (isset($data['ends']) && $data['ends'] < $dataAll['starts']) {
         $this->errorValidateJson(['ends' => 'end date must be after start date']);
     }
     $product->update($data);
     return $product;
 }