【问题标题】:Laravel 4: Submitting <option> Value To ControllerLaravel 4:向控制器提交 <option> 值
【发布时间】:2014-09-23 00:50:59
【问题描述】:

我有一个在传递给视图之前在控制器中生成的表单:

public function displayUsers(){
    $html = "";

    //get all users
    $users = $this->entityManager->getRepository('User')->findBy(array(), array('last_name'=>'ASC')); 
    if($users){
        $html .= '<h3>Permissions By User</h3>';
        $html .= '<select class="form-control" id="permissions-username">';
        foreach($users as $user){
            $html .= '<option value="'.$user->getId().'">'.$user->getLastName().', '.$user->getFirstName().'</option>';
        }
        $html .= '</select>';
    }
    return View::make('admin')->with('output', $html);  
}

然后在“管理员”视图中,我有以下显示表单:

{{ Form::open(array('route'=>'permissions.edit', 'method' => 'GET')) }}
        <div class="form-group">
            @if($output)
                {{ $output }}
            @endif
        </div>
        {{ Form::submit('Edit User', ['class'=>'btn btn-warning btn-sm', 'name' => 'edit_user', 'title'=>'Edit User']) }}
{{ Form::close() }}

当我将此表单提交给控制器时,所选选项的值不会结转。 permissions.edit 函数的输出结果为:

{"edit_user":"Edit User"}

生成的 URL 为:

*(BASE)*/permissions/%7Bpermissions%7D/edit?edit_user=Edit+User

如果我使用刀片模板在视图上创建一个表单,这个问题就解决了。但是,我不想将表单的所有逻辑都放在我的视图中。

【问题讨论】:

    标签: laravel-4


    【解决方案1】:

    那是因为你的select没有名字,现在如下图:

    <select class="form-control" id="permissions-username">
    

    为其分配一个name,例如,如下所示:

    <select name="permissions_username" class="form-control" id="permissions-username">
    

    每个表单元素都必须有一个名称,否则您无法在服务器端访问它们。因此,现在您可以使用类似这样的方式(在 Laravel 的情况下)访问服务器上的该元素(在您的脚本中):

    $permissions_username = Input::get('permissions_username');
    

    否则(使用 Vanilla PHP)您可以使用:

    $permissions_username = $_GET['permissions_username'];
    

    因为您在表单中使用了GET 方法。因此,无论您使用什么,都需要为表单的元素指定一个名称,这是必要的(即使有或没有Laravel)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 2013-06-10
      • 2020-03-05
      • 2016-11-20
      • 1970-01-01
      相关资源
      最近更新 更多