Laravel / php:循环值仅发送最后一个值

时间:2014-04-23 18:29:36

标签: php laravel

我知道这是一个简单的但我有一个循环,它只返回我的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
        }


    }

1 个答案:

答案 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')的值是什么。