File: D:/HostingSpaces/SBogers10/ijzerenman.komma.pro/app/Custom/Forms/FormService.php
<?php
namespace Komma\Forms;
class FormService
{
private $formName = '';
/**
* @var FormValidator
*/
private $formValidator;
private $errors;
/**
* @param FormValidator $formValidator
*/
public function __construct(FormValidator $formValidator)
{
$this->formValidator = $formValidator;
}
/**
* Return errors to the user
*
* @return mixed
*/
public function errors()
{
return $this->errors;
}
/**
* Which form are we on
*
* @param $name
*/
public function setFormName($name)
{
$this->formName = $name;
}
/**
* Save form data in session
*
* @param $data
*/
public function saveInSession($data)
{
\Session::put($this->formName, $data);
}
/**
* Save form data in session
*
* @param $data
*/
public function forgetSession()
{
\Session::forget($this->formName);
}
/**
* Get saved data from session
*
* @param $name
* @return mixed
*/
public function fromSession()
{
if( ! \Session::has($this->formName)) return $this->defaultValues();
return \Session::get($this->formName);
}
/**
* Validate form data
*
* @param $request
* @return bool
*/
public function isValid($request)
{
// Get rules
$rules = \Config::get('komma/forms/rules.' . $this->formName);
// Push rules to form validator
$this->formValidator->setRules($rules);
// Validate
if($this->formValidator->isValid($request)) return true;
// Set errors
$this->errors = $this->formValidator->errorMessages();
return false;
}
/**
* Return only the request data that we need
*
* @param $request
* @return array
*/
public function data($request)
{
// Get data for email and stuff
$data = [];
foreach(array_keys($this->defaultValues()) as $field)
{
$data[$field] = $request[$field];
}
//$data['reservation_for'] = $request['global'];
return $data;
}
/**
* Get configuration for this form
*
* @return mixed
*/
public function config()
{
return \Config::get('komma/forms/config.' . $this->formName);
}
/**
* Get configuration for this form
*
* @return mixed
*/
public function defaultValues()
{
return \Config::get('komma/forms/values.' . $this->formName);
}
}