osb/app/Traits/OrderServiceOptions.php
2018-08-11 15:21:15 +10:00

50 lines
934 B
PHP

<?php
/**
* Creates and returns the Service Options Model for an Order.
*/
namespace App\Traits;
use Illuminate\Http\Request;
trait OrderServiceOptions
{
/*
protected $order_attributes = [
'options.input'=>[
'request'=>'options.input',
'key'=>'column',
'validation'=>'required|string:10',
'validation_message'=>'It is a required field.',
],
];
protected $order_model = NULL;
*/
public function orderValidation(Request $request)
{
if (! isset($this->order_attributes))
return NULL;
$request->validate(collect($this->order_attributes)->pluck('validation','request')->toArray());
if (! isset($this->order_model))
return NULL;
$o = new $this->order_model;
$x = [];
foreach ($this->order_attributes as $k => $v)
{
$x[$v['key']] = $request->input($k);
}
$o->forceFill(array_undot($x));
// @todo Make this automatic
$o->site_id = config('SITE_SETUP')->id;
return $o;
}
}