如何将数据从Mysql表或DataTables传输到Laravel中的另一个Mysql表?
此代码的第二部分显示在传输完成后从第一个表中删除数据。第一部分是我的问题,应该在相同的功能和事件中。
查看
$(document).on('click', '#Confirm', function(){
var table = $('#panier_table').DataTable();
var i = 2;
var colId = table.column( 0 ).index();
var id = [];
if(confirm("Êtes-vous sûr de vouloir confirmer cette commande?"))
{
for (var i = 0; i < table.data().count(); i++)
{
var rowId = table.row( i ).index();
console.log( table.cells({ row: rowId, column: colId }).data()[0] );
id.push(table.cells({ row: rowId, column: colId }).data()[0]);
}
if(id.length > 0)
{
$.ajax({
url:"{{ route('ajaxdata.commande')}}",
method:"get",
data:{id:id},
success:function(data)
{
alert(data);
$('#panier_table').DataTable().ajax.reload();
}
});
}
}
});
控制器:
function Commande(Request $request)
{
$pn = $request->input('id');
$pdr = Panier::whereIn('id', $pn);
if($pdr->delete())
{
echo 'Commande Confirmée';
}
}
这是结果:
答案 0 :(得分:1)
所以您现在有了这个
function Commande(Request $request)
{
$pn = $request->input('id');
$pdr = Panier::whereIn('id', $pn);
if($pdr->delete())
{
echo 'Commande Confirmée';
}
}
由于您在此行的$ pdr中存储了数据
$pdr = Panier::whereIn('id', $pn);
有了这些数据,您可以将其存储在另一个表中,假设我想将其传输到用户表,我可以尝试以下操作
User::create([
'name' => $pdr->name,
'email' => $pdr->email,
])
为每个列分配要连接的数据
因此您的最终功能将看起来像这样
function Commande(Request $request)
{
$pn = $request->input('id');
$pdr = Panier::whereIn('id', $pn);
$user = User::create([
'name' => $pdr->name,
'email' => $pdr->email,
])
if($user){
if($pdr->delete())
{
echo 'Commande Confirmée';
}
}
}
将用户更改为您喜欢的模型
答案 1 :(得分:0)
这是可行的,但是我必须插入第一个表中相同数量的属性,否则会出现此错误:
"SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 (SQL: INSERT into Commandes (ID_User, ID_Pi ▶"
我只需要3个属性(ID_User, ID_Piece, QTE)
:
function Commande(Request $request)
{
$pn = $request->input('id');
$pdr = Panier::whereIn('id', $pn);
$bindings = $pdr->getBindings();
$insertQuery = 'INSERT into Commandes (id, ID_Ligne, ID_Piece, ID_User, Piece, QTE, created_at, updated_at) '
. $pdr->toSql();
\DB::insert($insertQuery, $bindings);
if($pdr->delete())
{
echo 'Commande Confirmée';
}
}