public function storeLayer($request) { $layer = new Layer(); $values = $request->except('_token', '_method', 'map_id', 'source_id'); $layer->fill($values); $map = Map::findOrFail($request->map_id); $layer->map()->associate($map); $source = Source::findOrFail($request->source_id); $layer->source()->associate($source); $layer->save(); return $layer; }
/** * Get the validation rules that apply to the request. * * @return array */ public function rules() { $id = $this->route('source'); $source = Source::findOrFail($id); $rules = ['name' => 'required|max:255', 'description' => 'sometimes|string', 'web' => 'sometimes|url']; switch ($source->origin_type) { case 'url': $typeRules = ['sync_interval' => 'required|in:never,yearly,monthly,weekly,daily,onchange']; break; case 'file': $typeRules = []; break; default: $typeRules = []; } return array_merge($rules, $typeRules); }
public function destroySource($id) { $source = Source::findOrFail($id); //if source has maps return -1 $result = Source::destroy($id); return $result; }