2017-06-07 16 views
0

は、これが私のフォームです:Laravelの編集フォームのエラー

{!! 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() !!} 

、これが私の更新機能である:

$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); 

私は私のブレードからUndefined variable: countriesエラーを取得しています、私の形で問題が何でありますか?

+0

を追加し、あなたは' $に合格していてはいけません各国はその形態に変わる。 – linuxartisan

+0

また、複数の国を渡している場合は、 '$ countries-> id'と言うことはできません。 – linuxartisan

+0

いいえ編集ボタンをクリックすると国が1つだけ編集されます – djhru

答えて

3

この回答をコメント内の会話からまとめます。

ブレードビュー(フォーム)のエラーUndefined variable: countriesは、前述の変数をビューに渡すのを忘れてしまったために発生します。 edit機能(ビューを呼び出し、このとしての機能)で

、フォームが呼び出さなっているところから、 `edit`機能では、次の

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