我正在使用Laravel 4,我需要在MySQL表中插入一些行,我需要重新插入它们的ID.
对于单行,我可以使用->insertGetId(),但它不支持多行.如果我至少可以检索第一行的ID,就像普通的MySQL那样,就足以找出其他的那些.
我正在使用Laravel 4和Eloquent ORM.在我的系统中,当有人删除记录时,必须检查它是否有任何相关记录.如果没有,则可以永久删除.但如果确实如此,只需执行softDeletion即可.
处理这种情况的方法是:尝试强制删除,如果由于引用完整性而抛出异常,则捕获它和softDelete.我知道这看起来很花哨,但它是由另一个开发人员制作的,我宁愿不要弄乱他的代码.
他所做的就是删除,然后如果它抛出异常,只需设置一个标志来"停用"记录.它确实运作良好.然而,当我接手时,我实现了softDeleting以减少花哨的东西.
现在,当它尝试强制删除时,它会抛出QueryException,但不会落入catch块.我已经尝试将Exception更改为\ Exception,QueryException,Illuminate\Database\QueryException,但没有成功.有任何想法吗?
为了更好地说明它:
就像这样:
try
{
$contact->delete();
}
catch(Exception $ex)
{
$contact->status = 0;
$contact->save();
//this works
}
Run Code Online (Sandbox Code Playgroud)
而现在它是这样的:
protected $softDelete = true;
....
try
{
$contact->forceDelete();
}
catch(Exception $ex)
{
$contact->delete();
//this doesn't work
}
Run Code Online (Sandbox Code Playgroud)
萤火虫响应:
{"error":{"type":"Illuminate\\Database\\QueryException","message":"SQLSTATE[23000]: Integrity constraint violation: 1451
Cannot delete or update a parent row: a foreign key constraint fails (`tst_db\/contact_company`, CONSTRAINT `fk_contact_company_contacts_id`
FOREIGN KEY (`contact_id`) REFERENCES `contacts` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE)
(SQL: delete from `contacts` where …Run Code Online (Sandbox Code Playgroud) 我一直在使用Pytorch 0.4.0逻辑回归模型,在我的输入为高维和我的输出必须是一个标量- 0,1或2。
我使用一个线性层与一个 softmax 层相结合来返回一个n x 3张量,其中每一列表示输入落在三个类 ( 0,1或2)之一中的概率。
但是,我必须返回一个n x 1张量,因此我需要以某种方式为每个输入选择最高概率并创建一个张量,指示哪个类别的概率最高。如何使用 Pytorch 实现这一目标?
为了说明,我的 Softmax 输出如下:
[[0.2, 0.1, 0.7],
[0.6, 0.2, 0.2],
[0.1, 0.8, 0.1]]
Run Code Online (Sandbox Code Playgroud)
我必须返回这个:
[[2],
[0],
[1]]
Run Code Online (Sandbox Code Playgroud)