File: D:/HostingSpaces/Anvil/anvil-industries.com/app/KommaApp/Forms/FormService.php
<?php
/**
* Created by PhpStorm.
* User: mike
* Date: 28/09/17
* Time: 15:58
*/
namespace App\KommaApp\Forms;
use Carbon\Carbon;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;
class FormService
{
/**
* Origin from where the request was done
* f.e. 'contact','offer'
*
* @var
*/
protected $origin;
/**
* Set the origin of the form request
*
* @param $origin
*/
public function setOrigin($origin)
{
$this->origin = $origin;
}
/**
* Store the request in the database
*/
public function storeRequest($request)
{
if(is_array($request)) {
$storeRequest = $request;
}
elseif(is_a(FormRequest::class, $request)){
$storeRequest = $request->duplicate();
$storeRequest = $storeRequest->except('_token');
}
else{
dd('error');
}
foreach ($storeRequest as $name => $value) {
if ( ! \Schema::hasColumn('requests', $name)) {
\Schema::table('requests', function ($table) use ($name) {
$table->text($name)->nullable();
});
}
}
$dbRequest = new \App\KommaApp\Forms\Models\Request();
$dbRequest->origin = $this->origin;
$dbRequest->created_at = Carbon::now()->toDateTimeString();
$dbRequest->updated_at = Carbon::now()->toDateTimeString();
foreach ($storeRequest as $name => $value) {
$dbRequest->$name = $value;
}
$dbRequest->save();
}
// public function sendRequest(FormRequest $request, $replyToInputEmail = false)
// {
// // Remove token from request
// $request = $request->except('_token');
//
// // Set custom reply to
// if ($replyToInputEmail) {
// $replyTo = $request['email'];
// }else {
// $replyTo = \Config::get('mail.to.address');
// }
//
// // Add breaks to message
// if (isset($request['message'])) {
// $request['message'] = nl2br($request['message']);
// }
//
// \Mail::send('site.emails.' . $this->origin, [
// 'request' => $request
// ], function ($message) use ($replyTo) {
//
// // Set receiver
// $message->to(\Config::get('mail.to.address'), \Config::get('mail.to.name'));
//
// // Set subject
// $message->subject(\Lang::get('site/emails/' . $this->origin . '.subject'));
//
// // Set replyTo
// $message->replyTo($replyTo);
//
// });
// }
}