2016-07-03 9 views
1

私は比較的新しいLaravelです。データベースから対応するアイテムを削除するページ上に「編集」ボタンと「削除」ボタンを印刷しようとしています。項目はテーブル行で構成され、ボタンは各行の最後に配置されます。Laravel 5 - モデルIDはforeachループで適切に更新されませんか?

私はこのような何かをしています:

 @foreach(Auth::user()->events as $event) [...] 
<div style="display: table-cell; float: right; padding-right: 10px"> 
         {!! Form::model($event, ['method' => 'DELETE', 'action' => ['[email protected]',$event->id]]) !!} 
         {!! Form::submit('Remove Event', ['class'=>'btn btn-primary form-control']) !!} 
        </div> 
        <div style="display: table-cell; float: right; padding-right: 10px "> 
         <a href="{{action('[email protected]', [$event->id])}}" class="btn btn-primary">Edit Event</a><br><br> 
        </div>[...] 
@endforeach 

番目のボタン(編集)が正しく、各イベントのために、私のイベントの「ID」を指しています。

しかし、最初のボタン(イベントの削除)は、すべてのイベントについて、私のリストの最初のイベントのIDを頑強に指しています。最初のFormタグの前に$ event-> idを出力すると、各行に異なるイベントIDが正しく返されます。誰かが私に何が間違っているのか教えてもらえることを感謝します!ありがとう

下の行を追加してください。リンクが正しいように見えます。しかし、 "削除"ボタンの上にマウスを置くと間違ったID(この場合はすべての行で "24")が表示されます。

     <div style="display: table-cell; float: right; padding-right: 10px"> 
         <form method="POST" action="http://localhost:8888/events/25" accept-charset="UTF-8"><input name="_method" type="hidden" value="DELETE"><input name="_token" type="hidden" value="EDyShblSllVX1Zr992saX4YPAXxh05p8UiVGmDkF"> 
         <input class="btn btn-primary form-control" type="submit" value="Remove Event"> 
        </div> 
        <div style="display: table-cell; float: right; padding-right: 10px "> 
         <a href="http://localhost:8888/events/25/edit" class="btn btn-primary">Edit Event</a><br><br> 
        </div> 
+0

このコードは何を生成しますか? (このブレードテンプレートによって生成された生のHTMLを投稿できますか?) –

+1

'model'ではなく' open'を使用してください。 –

+0

こんにちはムハンマド、違いは何ですか? – Tia

答えて

3

あなたには{{Form::close()}}がありません。これが原因です。 Form::model()の後に必ず挿入してください。

+0

これは正解です。 'Form :: model()'のマニュアルページには大きな赤い警告ボックスがあり、 'Form :: model()'を使った後に常に 'Form :: close()'を使うよう促してくれることを覚えておきたいと思います。 –

+0

ありがとう、それは働いた! – Tia

関連する問題