2014-10-22 6 views
-1

У меня возникла серьезная проблема с получением данных в представлении после получения всех значений из нескольких флажков. Я могу выбрать последнее значение, но не более того.Laravel multiple checkbox data fetch

Вот мой контроллер:

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 
+0

Это не совсем понятно, что вы спрашивать и как он вписывается в код, который вы опубликовали. Не могли бы вы объяснить, что вы пытаетесь выполнить, и указать, где это происходит в вашем коде? –

+0

Я просто хочу, чтобы все флажки были проверены и выполняли поисковый запрос с этим значением .. после этого я хочу просмотреть все результаты - просто, я имею в виду, что это кажется простым :) –

+0

А, так в строке '$ valore = Input :: get ('opt'); ', opt содержит массив значений флажка, поступающих с другого представления? –

ответ

0
@foreach ($friends as $friend) 
<input tabindex="1" type="checkbox" name="check[]" id="{{$item}}" value="{{$itemval}}"> 
@endforeach 


$items_checked= Input::get('check'); 
if(is_array($items_checked)) 
{ 
    // do stuff with here with checked items 
} 
+6

Измените свой ответ, чтобы добавить объяснение того, как работает ваш код и как он решает проблему OP. Многие плакаты SO являются новичками и не поймут код, который вы опубликовали. –

1

Есть еще целый ряд проблем с вашим кодом, которые должны быть решены, но причина, почему ты 'только для получения последнего результата установки флажка, считая, что значения флажка начинаются с $valore = Input::get('opt');, происходит потому, что когда вы просматриваете значения в вашем foreach, вы перегружаете ting переменную результатов.

В коде:

foreach ($valore as $val) { 

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

    echo $val . ""; // 

    // echo $results 
} 

Переменная $result не была объявлена ​​до первой итерации вашего цикла, что означает, что в первом цикле $result устанавливается в результате вашего Tpaytv::where вызова метода, а затем на во втором цикле значение в $result составляет , переписав следующим результатом из метода вызова Tpaytv::where. Вот почему вы проверяете только последнее значение; это последнее значение, зацикливаемое в вашем 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 
} 
+0

все в порядке ... но у меня все еще возникла проблема, если я подсчитаю ($ results) в моем представлении, приложение переходит в фатальную ошибку --- «Вызовите функцию-член функции() на не-объект», im действительно путают –

+0

Хм, это странно. В самом верху вашего представления попробуйте ввести '{{dd ($ results)}}'. Это скажет laravel, чтобы умереть и сбросить содержимое переменной в браузер. Когда вы это делаете, она отображает переменную $ results в виде массива с рядом объектов в ней? –

+0

yes ... array (2) {[0] => объект (Illuminate \ Database \ Eloquent \ Collection) # 562 ... и т. Д. И т. Д. И т. Д. –