Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je fais
Décrivez ici votre code ou ce que vous cherchez à faire
Controller :
public function save(CarsitterRequest $request, Carsitter $carsitter = null)
{
$creation = $carsitter ? false : true;
if ($creation) {
$carsitter = User::byEmail($request->email)->join('carsitters', 'carsitters.user_id', 'users.id')->select(['carsitters.*'])->first();
if ($carsitter) {
return redirect()->route('admin_edit_carsitter', ['carsitter' => $carsitter])->with('validation', 'Ce carsitter existe déjà');
}
}
$validator = $this->getCarsitterValidator($request);
if ($validator->fails()) {
return redirect()->back()
->withInput()
->withErrors($validator);
}
$carsitter = Carsitter::edit([
'email' => $request->input('email'),
'firstname' => $request->input('firstname'),
'lastname' => $request->input('lastname'),
'phone' => $request->input('phone'),
'personal_address_id'=>Address::updateOrCreateAddress($request->input("particular-personal-address_json")),
'email_docusign' => $request->input('email_docusign'),
'lang' => $request->input('lang'),
'state' => $request->input('state'),
'siret' => $request->input('siret'),
'fuel_card_id' => $request->input('fuel_card_id'),
'main_income' => $request->input('main_income'),
],
$carsitter,
false
);
$carsitter->save();
if (!$carsitter->tookan_fleet_id) {
$this->sendCarsitterToTookan($carsitter, $request);
}
return redirect()->route('admin_edit_carsitter', ['id' => $carsitter->id])->with("validation", "Le carsitter a bien été " . ($creation ? "ajouté" : "modifié"));
}
model :
public static function edit($properties, $carsitter = null, $autosave = true)
{
$properties = array_merge([
'email' => null,
'firstname' => null,
'lastname' => null,
'phone' => null,
'email_docusign' => null,
'personal_address_id'=>null,
'lang' => null,
'state' => null,
'siret' => null,
'fuel_card_id' => null,
'main_income' => null,
], $properties);
if (!$carsitter) {
$user = User::byEmail($properties['email'])->select(['id'])->first();
if (!$user) {
$user = User::saveNewUser($properties['email']);
$particular = $user->particular;
$particular->personal_address_id = $properties['personal_address_id'];
$particular->firstname = $properties['firstname'];
$particular->lastname = $properties['lastname'];
$particular->telephone = $properties['phone'];
$particular->save();
}
$carsitter = new Carsitter();
$carsitter->user_id = $user->id;
$particular = $user->particular;
}
$carsitter->email_docusign = $properties['email_docusign'];
$carsitter->lang = $properties['lang'];
$carsitter->state = $properties['state'];
$carsitter->siret = $properties['siret'];
$carsitter->fuel_card_id = $properties['fuel_card_id'];
$carsitter->main_income = $properties['main_income'];
if ($autosave) {
$carsitter->save();
}
return $carsitter;
}
public function getPersoAddressAttribute()
{
return $this->user->particular->personal_address;
}
form.blade.php
<tr>
<td>Adresse perso</td>
<td class="address-table-field">
<div class="google-auto-complete-component">
<input class="address form-control" name="particular-personal-address" value="{{$carsitter->personal_address ? $carsitter->personal_address->formatted_address: ""}}">
<input type="hidden" name="particular-personal-address_json" class="address-json" value="{{old("particular-personal-address_json",$carsitter->personal_address? json_encode($carsitter->personal_address->address_json) : "")}}"/>
</div>
</td>
</tr>
Ce que je veux
Je veux afficher mon formulaire add pour ajouter un carsitter tout les champs fonctionne mais le champs Adresse perso pose problème
Merci pour votre aide
Ce que j'obtiens
Trying to get property of non-object (View: /var/www/html/resources/views/admin/carsitters/form.blade.php) (View: /var/www/html/resources/views/admin/carsitters/form.blade.php)
/var/www/html/storage/framework/views/93e0f7538609bff1f521af6966ccb81dd9651794.php#48