【问题标题】:Form Submit is not Working in Laravel表单提交在 Laravel 中不起作用
【发布时间】:2018-01-22 02:29:27
【问题描述】:

我在 Laravel 中创建了一个 html 表单,但是当我提交时,它没有提交,甚至没有显示任何错误。 这是我的表格:

<form action="{{route('assign.role')}}" method="post">
     {{ csrf_field() }}
     @foreach($users as $user)
       <tr>
        <td>{{$user->name}}</td>
        <td>{{$user->email}} <input type="hidden" name="email" value="{{$user->email}}"></td>
        <!-- <td>{{$user->roles->implode('name', ', ')}}</td> -->
        @foreach($roles as $role)
          <td><input type="checkbox" name="role" {{ $user->roles->contains($role) ? 'checked' : '' }}></td>
        @endforeach
        <td><input type="submit" name=""></td>
       </tr>
     @endforeach 
</form>

这里是路线。

Route::post('/assign',[
  'uses' => 'AppController@assignrole',
  'as' => 'assign.role',
  'middleware'=>'roles',
  'roles'=>['Admin']
]);

还有,我的 Controller 方法。

public function assignrole(Request $request)
{
    return $request->all();
}

【问题讨论】:

  • 你在没有中间件的情况下检查了吗?
  • yes.not 响应。
  • 'roles' => ['Admin'] 似乎不是一个有效的参数。您可以尝试删除它和您的中间件,然后向其中发布一些内容吗?此外,提交输入不需要 name=""

标签: php forms laravel


【解决方案1】:

您不能对一个表单使用多个提交

     @foreach($users as $user)
<form action="{{route('assign.role')}}" method="post">
        {{ csrf_field() }}

    <tr>

        <td>{{$user->name}}</td>
        <td>{{$user->email}} <input type="hidden" name="email" value="{{$user->email}}"></td>
        <!-- <td>{{$user->roles->implode('name', ', ')}}</td> -->
        @foreach($roles as $role)
          <td><input type="checkbox" name="role" {{ $user->roles->contains($role) ? 'checked' : '' }}></td>
        @endforeach


        <td><input type="submit" name=""></td>
    </tr>

</form>
    @endforeach 

【讨论】:

  • 我按你的方法试试,还是没有反应。
  • 原始问题是否已编辑?我看不出答案和原始问题之间的区别
  • @Screwtape007 提交输入不应在 foreach 循环中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 2012-09-28
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多