我通过ajax在字符串中输入id,
例子:
"1,2"
在我的控制器中,我想使用where with id=> [1,2]
.
AJAX :
$('#add_product').click(function() {
var id = $('#get_value').val();
$.ajax({
type: 'POST',
url: "{{action('ProductController@updateProduct')}}",
data: {
id: id
},
success: function(data){
alert("success");
}
});
});
控制器:
public function updateProduct(Request $request){
$test_value = collect($request->id);
$updateProduct = Product::whereIn('id',$test_value)
->update(['title' => 'My title']);
}
但我在网络上有个错误:
sqlstate[22007]:无效的datetime格式:1292截断了不正确的双精度值:“1,2”(sql:update“products”set“title”=“my title”,其中(1,2)中的“id”)
3条答案
按热度按时间bejyjqdl1#
不能更新表-bulk中的字段。您需要通过foreach逐个更新
lnlaulya2#
在$test\u value中,您将获得值
"1,2"
作为一个字符串,因此必须首先使用explode()函数(explode()函数在这里做的是),那就把这个传过来
$ids
你的职能。az31mfrm3#
您需要删除collect()