【问题标题】:How pass value from input by Session method in Laravel 5.4?如何在 Laravel 5.4 中通过 Session 方法从输入中传递值?
【发布时间】:2017-11-16 13:30:58
【问题描述】:

我试图从我的输入中传递一个值来构建一个过滤器,我需要获取所有这些值,传递给我的控制器并进行操作,我输入了输入并创建了关于控制器的所有东西,但是出于某种原因,我的会话没有得到我在字段中指定的值。我只放了一个例子,因为代码很长,所有领域的逻辑都重复了。

例如:

我需要获取 'codigopedido' 值,所以我将输入与该属性:

<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";}

由于某种原因,会话仅从另一个过滤器中获取值,有什么建议吗?

【问题讨论】:

  • 什么版本的 laravel。我相信较新的版本会限制会话类的使用。
  • 如果我使用相同的字段来保存来自不同过滤器的值,你会遇到问题吗?
  • 我相信不是这样,我用我已经使用过的字段进行了测试,问题是通过会话将值从 Input 传递到 Controller
  • 我不明白为什么这会是一个问题,除非预期的字段值是不同的预期类型。例如,一个字段有时带有浮点数,有时带有字符串或整数。我建议尽量明确。
  • 尽量避免解释器定义字段类型的情况。

标签: javascript laravel


【解决方案1】:

这看起来像一个序列化的对象。您可以使用 $data->toJson() 或 $data->toArray() 轻松地将其转换为 json 对象或数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    相关资源
    最近更新 更多