drxdn40242 2017-06-07 03:45
浏览 89
已采纳

Laravel编辑表单错误

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?

  • 写回答

1条回答 默认 最新

  • douzhi1972 2017-06-07 03:58
    关注

    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'));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?