如何在Laravel中将数组从视图传递到控制器?

时间:2017-04-05 03:13:46

标签: laravel laravel-blade

我在blade.php中创建了一个表单,在这里我可以选择多个复选框,我想将所选输入的值传递给数组中的控制器。但是我失败了,我无法发送数据。 这是来自视图的代码。所选输入的值可以是1,2等;

<form method="post" action="{{action('votesubmitController@votesubmit')}}" class="form">

<input type="hidden"  name="_token" value="{{ csrf_token() }}">

@foreach($candidate_list[$post_list->id] as $candidate_list[$post_list->id])

<li>
  <input type="checkbox"  name= "selected[]"  value= {{ 
$candidate_list[$post_list->id]->id }}>
  <label>
  <!-- some code here -->
  </label>
</li>

@endforeach
<button type="submit" id="login-button">Submit</button>
</form>

这是路线 -

Route::post('/votesubmit','votesubmitController@votesubmit');

如果我在控制器中写回返$ input,我发现 -

{"_token":"TQIUxVz0LjzM84Z7TaUPk3Y7BLZPjmXUyhXhlQfp","selected":
  ["1","2"]}

这就是我需要的。我不知道如何获得选定的价值。当我得到特定的路由错误异常发生时。并说“未定义变量:已选择”。 这是我的Controller的代码 -

class votesubmitController extends Controller
{
public function votesubmit()
{
  $input = Input::all();
 // return $input;     
  foreach ($selected as $selected) {
     echo $selected;
  }
}
}

2 个答案:

答案 0 :(得分:2)

// You can try this
class votesubmitController extends Controller
{
 public function votesubmit()
 {
  //$input = Input::all();
  //$selected = $input['selected'];
  $selected = Input::get('selected');   
   foreach ($selected as $selected) 
   {
    echo $selected;
   }
 }
}

答案 1 :(得分:0)

要么使用 $ selected = $ input ['selected'] 要么 使用ajax传递它。