Skip to content

Instantly share code, notes, and snippets.

@NiltonMorais
Created June 15, 2016 04:02
Show Gist options
  • Select an option

  • Save NiltonMorais/42ffd14ba7a991937748f01dd1027ce1 to your computer and use it in GitHub Desktop.

Select an option

Save NiltonMorais/42ffd14ba7a991937748f01dd1027ce1 to your computer and use it in GitHub Desktop.
<?php
namespace DeliveryUrbano\Http\Requests;
use Illuminate\Http\Request as HttpRequest;
class CheckoutRequest extends Request {
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() {
return true;
}
/**
* @param HttpRequest $request
* @return array
*/
public function rules(HttpRequest $request) {
$rules = [];
//dd($this->method());
switch ($this->method()) {
case 'DELETE': {
$rules = [
'id' => 'required'
];
break;
}
case 'POST': {
$rules = [
'cupom_code' => 'exists:cupoms,code,used,0'
];
$this->buildRulesItems(0, $rules);
$items = $request->get('items', []);
$items = !is_array($items) ? [] : $items;
foreach ($items as $key => $val) {
$this->buildRulesItems($key, $rules);
}
break;
}
case 'PATCH': {
$rules = [
'teste' => 'required'
];
break;
}
default: {
$rules = [
'teste'=>'required'
];
break;
}
}
return $rules;
}
public function buildRulesItems($key, array &$rules) {
$rules["items.$key.product.id"] = 'required';
$rules["items.$key.product.qtd"] = 'required';
$rules["items.$key.product.price"] = 'required';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment