1
有2个表quotedetails和quotationmaster和一个普通字段QuoteNo。 SNO是报价大师的主键。我想获得最大的sno并使用它,我想将相同的QuoteNo插入到2个不同的表中。 继承人我的代码。我想要得到最后一个插入的ID
$response = '';
$customer=TableRegistry::get('quotationmaster');
$query=$customer->query();
$this->set(array('data'=>$query));
$response = $customer->find();
foreach($response as $row)
{
//echo $row['QuoteNo'];
$x++;
}
$qno = $x + 1;
$nqno = 'Q1-'.$qno;
$query->insert(['QuoteNo'])->
values(['QuoteNo'=>$nqno])->execute();
if($query)
{
$this->Flash->success('Saved');
$this->redirect(['controller'=>'Stockcheck','action'=>'index']);
}
$quotedetails=TableRegistry::get('quotationmaster');
$detquery=$quotedetails->query();
$options = $detquery->select(['QuoteNo'],['SerialNO' => $query->func()->MAX('SNO')]);
$qresponse = $quotedetails->find('all', $options);
Any helps are appreciable...
没有冒犯,但看起来很奇怪。测试'$ query'将始终是真实的,Query :: select()的第二个参数需要一个布尔值,而不是数组,而'Table :: find()'的第二个参数需要一个数组,而不是查询对象。运行该代码时应该会看到一堆错误。你确定你知道你在那里做什么吗?我会建议多研究一下这些文档,以便更好地理解工作方式,然后使用'Table :: save()'而不是手动插入记录。 – ndm