php - How to update records laravel 5 -


i have related tables in database , i'm able create record it's foreign keys successfully, cant figure out how edit , update record

below store code gets inputs form:

    public function store(request $request){     $account = new account;     $type = new type;     $agency = new agency;     $client = new client;      $agency->name = $request->input('agency_name');     $agency->save();     $type->name= $request->input('type_name');     $type->save();     $client->name= $request->input('client_name');     $client->save();      $account->client()->associate($client);     $account->type()->associate($type);     $account->agency()->associate($agency);      $account->username = $request->username;     $account->password = $request->password;     $account->save();      return redirect('accounts');     } 

the above stores record successfully, dont know how edit it, below pulls account data in edit fields doenst show account_id field, type_id , client_id fields blank:

public function edit(request $request, $id) {     $account=account::find($id);     return view('accounts.edit',compact('account')); } 

my update code, goes here?

public function update(request $request, $id) {     // ???     return redirect('accounts');  } 

so, should change store function -

public function store(request $request) {     $account = new account;      $type = type::wherename($request->type_name);     if (!is_null($type)) {         $type = $type->first();     }else{         $type = type::create(['name' => $request->type_name]);     }     $agency = agency::wherename($request->agency_name);     if (!is_null($agency)) {         $agency = $agency->first();     }else{         $agency = agency::create(['name' => $request->agency_name]);     }     $client = client::wherename($request->client_name);     if (!is_null($client)) {         $client = $client->first();     }else{         $client = agency::create(['name' => $request->client_name]);     }      $account->client()->associate($client);     $account->type()->associate($type);     $account->agency()->associate($agency);      $account->site_url = $request->site_url;     $account->login_url = $request->login_url;     $account->username = $request->username;     $account->password = $request->password;     $account->server_ip = $request->server_ip;     $account->database = $request->database;     $account->other = $request->other;     $account->save();     return redirect('accounts'); } 

now, once add account , open edit form, should able see type, agency & client.

as update method, need (assuming you're passing in agency, type & client -

public function update(request $request, $id) {     $account = account::find($id);     $type = type::wherename($request->type['name']);     if (!is_null($type)) {         $type = $type->first();     }else{         $type = type::create(['name' => $request->type['name']]);     }     $agency = agency::wherename($request->agency['name']);     if (!is_null($agency)) {         $agency = $agency->first();     }else{         $agency = agency::create(['name' => $request->agency['name']]);     }     $client = client::wherename($request->client['name']);     if (!is_null($client)) {         $client = $client->first();     }else{         $client = agency::create(['name' => $request->client['name']]);     }      $account->client()->associate($client);     $account->type()->associate($type);     $account->agency()->associate($agency);      $account->site_url = $request->site_url;     $account->login_url = $request->login_url;     $account->username = $request->username;     $account->password = $request->password;     $account->server_ip = $request->server_ip;     $account->database = $request->database;     $account->other = $request->other;     $account->save();      $request->session()->flash('alert-success', 'account updated');     return redirect('accounts'); }