djhru
djhru

Reputation: 336

Laravel Edit form error

this is my form:

{!! Form::model($countries, ['route' => ['countries.update', $countries->id], 'method' => "PUT"]) !!}
   {{ Form::label('code', 'Country Code:') }}
   {{ Form::text('code', null, ['class' => 'form-control']) }}
   {{ Form::label('name', 'Country Name:') }}
   {{ Form::text('name', null, ['class' => 'form-control']) }}
   {{ Form::submit('Save', ['class' => 'mt-20 btn btn-success btn-sm']) }}
{!! Form::close() !!}

and this is my update function:

$countries = Country::find($id);
$this->validate($request, array(
   'code' => 'required|min:2|max:4',
   'name' => 'required|max:255'
));
$country = Country::where('id',$id)->first();
$country->code = Input::get('code');
$country->name = Input::get('name');
$country->save();
Session::flash('success', 'The Country info was successfully updated.');
return redirect()->route('locations.index', $country->id);

what is the issue in my form that I'm getting Undefined variable: countries error from my blade?

Upvotes: 0

Views: 228

Answers (1)

linuxartisan
linuxartisan

Reputation: 2426

Consolidating this answer from our conversation in the comments.

The error Undefined variable: countries in the blade view (form) arises as you have forgotten to pass the said variable to the view.

In the edit function (as this the function calling the view), add the following

$countries = Country::find($id); // though I'd suggest naming it $country
...
return view('<view_name>', compact('countries'));

Upvotes: 3

Related Questions