Skip to content

Instantly share code, notes, and snippets.

@Garbee
Created December 4, 2016 17:02
Show Gist options
  • Save Garbee/0ce075511b4efc1ffd34d1d441ad926d to your computer and use it in GitHub Desktop.
Save Garbee/0ce075511b4efc1ffd34d1d441ad926d to your computer and use it in GitHub Desktop.
<?php
namespace App\Composers\Partials\Admin\Addresses;
use App\Address;
use App\Composers\Composer;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
class Form implements Composer
{
/** @var Address */
private $addresses;
/** @var Request */
private $request;
public function __construct(Address $addresses, Request $request)
{
$this->addresses = $addresses;
$this->request = $request;
}
public function compose(View $view)
{
$addressIdentifier = (int)$this->request->route('address');
$nameValue = null;
$streetNameValue = null;
$buildingNumberValue = null;
$cityValue = null;
$stateValue = 'Virginia';
$countryValue = 'United States';
$postalCodeValue = null;
$premiseValue = null;
$subpremiseValue = null;
if ($addressIdentifier > 0) {
/** @var Address $address */
$address = $this->addresses->newQuery()->findOrFail($addressIdentifier);
$nameValue = $address->name;
$streetNameValue = $address->street_name;
$buildingNumberValue = $address->building_number;
$cityValue = $address->city;
$stateValue = $address->state;
$countryValue = $address->country;
$postalCodeValue = $address->postal_code;
$premiseValue = $address->premise;
$subpremiseValue = $address->subpremise;
}
if ($this->request->session()->hasOldInput()) {
$session = $this->request->session();
$nameValue = $session->getOldInput('name', $nameValue);
$streetNameValue = $session->getOldInput('street_name', $streetNameValue);
$buildingNumberValue = $session->getOldInput('building_number', $buildingNumberValue);
$cityValue = $session->getOldInput('city', $cityValue);
$stateValue = $session->getOldInput('state', $stateValue);
$countryValue = $session->getOldInput('country', $countryValue);
$postalCodeValue = $session->getOldInput('postal_code', $postalCodeValue);
$premiseValue = $session->getOldInput('premise', $premiseValue);
$subpremiseValue = $session->getOldInput('subpremise', $subpremiseValue);
}
$view
->with('nameValue', $nameValue)
->with('streetNameValue', $streetNameValue)
->with('buildingNumberValue', $buildingNumberValue)
->with('cityValue', $cityValue)
->with('stateValue', $stateValue)
->with('countryValue', $countryValue)
->with('postalCodeValue', $postalCodeValue)
->with('premiseValue', $premiseValue)
->with('subpremiseValue', $subpremiseValue);
}
public static function appliesTo() : string
{
return 'partials.admin.addresses.form';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment