【发布时间】: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