Php 雄辩的ORM插入或更新
我正在使用Laravel框架的数据库组件进行一个项目。该库包括一个名为“胶囊”的数据库抽象层(DBAL)和一个名为“雄辩”的对象关系映射(ORM)库 我想更新数据库中已经存在的扩展,但如果它们不存在,我还想插入一个新的“扩展”。最好的方法是什么 到目前为止,我的代码是:Php 雄辩的ORM插入或更新,php,mysql,eloquent,Php,Mysql,Eloquent,我正在使用Laravel框架的数据库组件进行一个项目。该库包括一个名为“胶囊”的数据库抽象层(DBAL)和一个名为“雄辩”的对象关系映射(ORM)库 我想更新数据库中已经存在的扩展,但如果它们不存在,我还想插入一个新的“扩展”。最好的方法是什么 到目前为止,我的代码是: try { $updatedDomainsCount = Capsule::table('tbldomainpricing') ->where('extension', $tld)
try {
$updatedDomainsCount = Capsule::table('tbldomainpricing')
->where('extension', $tld)
->update(
[
'extension' => $tld,
'autoreg' => 'domenytv',
'grace_period' => '15',
'idprotection' => $idp,
'grace_period_fee' => $rea_price,
]
);
echo "Updated {$updatedDomainsCount} TLD: $tld</br>";
} catch (\Exception $e) {
echo "I couldn't update domains tld. {$e->getMessage()}";
}
试试看{
$UpdatedDomainCount=Capsule::table('tbldomainpricing')
->其中('extension',$tld)
->更新(
[
“扩展”=>$tld,
'autoreg'=>'domenytv',
“宽限期”=>“15”,
“idprotection”=>idp美元,
“宽限期费用”=>$rea\u价格,
]
);
echo“更新的{$UpdatedDomainCount}TLD:$TLD”;
}捕获(\异常$e){
echo“我无法更新域tld.{$e->getMessage()}”;
}
使用雄辩的ORM方法:updateOrCreate
,用于创建新记录或更新现有记录
使用雄辩的ORM方法:
updateOrCreate
,用于创建新记录或更新现有记录
我不知道您正在使用的系统是什么,但重复更新时插入…应该做您想做的事情。警告您,如果您不理解SQL语句的基本语法,使用ORM/DBAL可能比文字SQL语句更复杂。嘿,Krystian,我更新了问题标题,与了解这些东西的人更相关。我加入是因为我知道MySQL,但不知道什么是雄辩。那些知道雄辩和不太擅长SQL的人可能会错过它。欢迎来到SO!我不知道您正在使用的系统是什么,但是重复更新时插入…应该做您想要做的事情。警告您,如果您不了解SQL语句的基本语法,使用ORM/DBAL可能比文字SQL语句更复杂。嘿,Krystian,我更新了问题标题,与了解这些东西的人更相关。我加入是因为我知道MySQL,但不知道什么是雄辩。那些知道雄辩和不太擅长SQL的人可能会错过它。欢迎来到SO!“调用未定义的方法illumb\Database\Query\Builder::updateOrCreate()已尝试此操作。看起来WHMC没有实现此方法。”当您创建扩展Eloquent模型的模式,然后调用所提到的方法时,它将起作用。“调用未定义的方法illumb\Database\Query\Builder::updateOrCreate()”已经尝试过这个了。看起来WHMC没有实现这个方法。”当你创建一个扩展了Elount模型的模型,然后调用上面提到的方法时,它就会工作。