2017-06-14 45 views
0

我嘗試從我的輸入傳遞值來建立一個過濾器,我需要獲得所有的值,傳遞給我的控制器和操縱,我puted輸入和創建所有關於控制器的東西,但由於某種原因,我的會話沒有得到我在字段中指定的值。我僅舉了一個例子,因爲代碼很長,重複了所有領域的邏輯。如何在Laravel 5.4中通過Session方法輸入值?

例如:

我需要得到'codigopedido的價值,所以我puted輸入與屬性:

<input type="text" class="form-control" name="codigopedido" id="codigopedido" placeholder="" value="{{ session('codigopedido') }}"> 

我在控制器中創建一個函數來處理該值

public function search(Request $request) 
    { 
     $order = Order::query(); 
     if ($request->isMethod('post')) 
     { 
      $codigopedido; 
      $codigopedido = $data->codigopedido; 
      session(['codigopedido' => $codigopedido]); 

     if (strlen(session('codigopedido')) > 0) 
     { 
      $order = $order->where('erp_site', session('codigopedido')); 
     } 
     $content = $order->paginate(20); 

     if ($request->isMethod('post')) 
     { 
      return view('admin.order-table')->with('order', $content); 

     } else 
     { 
      return view('admin.order')->with('order', $content); 
     } 

    } 

在我的JavaScript文件:

$(document).ready(function() { 
$(document).on('blur', '#codigopedido', function() { 
     var codigopedido = $('#codigopedido').val(); 
     searchRequest['codigopedido'] = codigopedido; 
     doSearch(); 
    }); 
}); 

function doSearch() { 
    $.post(postSearch, { 
      'search_database': JSON.stringify(searchRequest), 
      '_token': $('meta[name=csrf-token]').attr('content'), 
     } 
     , function(data) { 
      $('#order-table').html(data); 
     }); 
} 

筆者認爲:

<script src="{{ asset('assets/js/OrderSearch.js') }}"></script> 
    <script> 
     var postSearch = '{{ route('order::searchPost') }}'; 
     var searchRequest = { 
      'codigopedido': '{{ session('codigopedido') }}', 
     }; 
    </script> 

我檢查什麼值,我的會話中獲取,並且那是結果:

a:11:{s:6:"_token";s:40:"TngqBg13IFapNDmM8jGfTpLU0F1IDvsfeqEJmg01";s:6:"_flash";a:2:{s:3:"new";a:0:{}s:3:"old";a:0:{}}s:9:"_previous";a:1:{s:3:"url";s:35:"http://localhost:8000/admin/product";}s:18:"cartalyst_sentinel";s:32:"SE3m6CuxzCRFQafdZM6BwZ2oiShiFcsV";s:9:"descricao";s:0:"";s:5:"model";s:0:"";s:6:"status";s:0:"";s:11:"distributor";s:0:"";s:5:"stock";s:0:"";s:9:"categoria";s:0:"";s:5:"image";s:1:"0";} 

出於某種原因,該會議從另一個過濾器僅獲取價值,任何建議?

+0

什麼版本的laravel。我相信新版本會限制會話類的使用。 –

+0

如果我使用相同的字段來保存不同過濾器的值,是否會遇到問題? –

+0

我相信不是這樣,我測試了我已經使用過的字段,問題是通過會話將輸入值傳遞給控制器​​ –

回答

0

看起來像一個序列化的對象。您可以使用$ data-> toJson()或$ data-> toArray()將它輕鬆轉換爲json對象或數組。