我知道这是一个简单的但我有一个循环,它只返回我的ID的最后一个值:
@foreach($users as $user)
<tr>
<td>{{{$user->firstname}}}</a></td>
<td>{{{$user->secondname}}}</a></td>
<td>{{{$user->address}}}</a></td>
<td>{{{$user->city}}}</a></td>
<td>{{{$user->phone}}}</a></td>
<td>{{{$user->id}}}</td>
<td>{{{$user->username}}}</a></td>
<td>{{{$user->email}}}</tds>
<td>{{{$user->type}}}</a></td>
<td><input type="submit" name="Approve" value="Approve"></td>
<td><input type="submit" name="Decline" value="Decline"></td>
<label><span></span>{{Form::hidden('user_id', $user->id);}}</label>
</tr>
@endforeach
它是一个循环中的一个表单,它产生两个按钮,可以批准或拒绝成员。最后一个清单I.E.
{{Form :: hidden(&#39; user_id&#39;,$ user-&gt; id);}}
将user_id发送回控制器,但当然无论每次按下哪个按钮,它都会发送最后一个id,因为它被覆盖。最初我创建了一个迭代的,即$ i,并在上面的代码中将其添加到user_id
;例如'user_id'.$i
。这是完全正常的,直到我到达控制器,如果我不知道迭代的数字,那么首先发送user_id是没有意义的。所有帮助赞赏。感谢。
edit1:添加了控制器。我实际上要做的是正确地遍历结果
public function postUpdate() {
$uid = Input::get('user_id');
//checking which submit was clicked on
if(Input::get('Approve')) {
$this->postApprove($uid); //if approved then use this method
} elseif(Input::get('Decline')) {
$this->postDecline($uid); //if declined then use this method
}
}
答案 0 :(得分:2)
可能会想要制作多个表单,所以像这样(psuedo-code):
@foreach($users as $user)
<tr>
{{Form::open()}}
<td>{{-- user info --}}</td>
<td><input type="submit" name="action" value="Approve"></td>
<td><input type="submit" name="action" value="Decline"></td>
{{Form::hidden('user_id', $user->id)}}
{{Form::close()}}
</tr>
@endforeach
现在在您的控制器中,您可以执行以下操作:
$user = User::find(Input::get('user_id'));
switch(Input::get('action') {
case 'Approve':
// $user is approved
break;
case 'Decline':
// $user is declined
break;
default:
// Not submitted
}
注意,我还提到两个提交按钮都有name="action"
所以我们所要做的就是检查Input::get('action')
的值是什么。