沃梦达 / 编程问答 / php问题 / 正文

Laravel多个复选框数据获取

Laravel multiple checkbox data fetch(Laravel多个复选框数据获取)

本文介绍了Laravel多个复选框数据获取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在从多个复选框中获取所有值之后,我遇到了一个将数据提取到视图中的严重问题。我可以获取检查的最后一个值,但不能获取更多。

这是我的控制器:

public function getFilterPaytv(){

    $valore =  Input::get('opt');
    if(!empty($valore))
    foreach ($valore as $val) {

        $results = Tpaytv::where('Desc', 'LIKE', '%' . $val . '%')->get();

        echo $val . ""; // 

        // echo $results
    }

    return View::make('result')->with('results', $results);
}

这是我的看法

@if($results->count())
    @foreach($results as $pa)

            <div class="col-lg-12 ">
               <div class="box">
                  <div class="row">
                      <div class="col-lg-2"><img src="img/T.png" class="timC"></div>
                  <div class="col-lg-4">
                     <ul class="boxCar">
                        <li>Pro: {{$pa->Type}}</li>
                        <li>Sca: {{ date("d/m/Y",strtotime($pa -> S))}}</li>
                        <li 
                             data-toggle="modal" 
                             data-target="#{{ $pa->id }}">
                             <a>Magg</a></li>
                     </ul>
                  </div>
                      <!--inizio modal -->

                  <!-- fine modal -->
                  <div class="col-lg-3"><h1 class="ads">{{$pa->T}}€</h1></div>
                  <div class="col-lg-3">

                   {{ 
                       link_to_route('confr.show',
                       'request ', 
                       array($paytv->id), 
                       array('class' => 'btn btn-green btn-md offButton'))
                   }}
                  </div>
               </div>
            </div>
         </div>
    @endforeach
@else
no
@endif

推荐答案

您的代码仍然有许多问题需要解决,但您之所以只获得复选框集的最后结果,假设复选框值来自$valore = Input::get('opt');,是因为当您循环遍历Foreach中的值时,您将覆盖结果变量。

在您的代码中:

foreach ($valore as $val) {

    $results = Tpaytv::where('Desc', 'LIKE', '%' . $val . '%')->get();

    echo $val . ""; // 

    // echo $results
}

直到循环的第一次迭代才声明变量$result,这意味着在第一次循环中$result被设置为Tpaytv::where方法调用的结果,然后在第二次循环中$result中的值被Tpaytv::where方法调用的下一个结果覆盖。这就是为什么您只检查最后一个值;它是在Foreach中循环的最后一个值。

如果您想获得一大堆结果,则需要在Foreach循环之前将$result变量声明为空数组,然后将结果推入数组:

// Create your empty array
$results = array();

foreach ($valore as $val) {

    // Push the results of the method call into the array.
    // This will keep them from being overwritten in your foreach loop. 
    $results[] = Tpaytv::where('Desc', 'LIKE', '%' . $val . '%')->get();

    echo $val . ""; // 

    // echo $results
}

这篇关于Laravel多个复选框数据获取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:Laravel多个复选框数据获取