я ищу запись удовлетворяющее условию ['amoID' => $contacts[0]->getId(), 'crmCompanyID'=>$companyID] если нет , то создаем запись, а у меня говорит , что crmCompanyID не может быть равен нулю.
БД:
CREATE TABLE IF NOT EXISTS `crmAmoUser` (
`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`amoID` bigint(20) UNSIGNED NOT NULL COMMENT 'Ид в амо',
`name` varchar(190) NOT NULL COMMENT 'Имя',
`crmCompanyID` int(11) NOT NULL,
`created` timestamp NULL DEFAULT NULL,
`updated` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `AMOID` (`amoID`,`crmCompanyID`) USING BTREE,
KEY `CRMAmoUserCompany` (`crmCompanyID`) USING BTREE,
KEY `CRMNameCompany` (`name`,`crmCompanyID`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8
Модель:
class AmoUser extends BaseCRM
{
protected $table = 'crmAmoUser';
protected $casts = [
'created' => 'datetime',
'updated' => 'datetime',
'name' => 'string',
'amoID' => 'int',
'crmCompanyID' => 'int',
];
protected $fillable = [
'name',
'amoID',
'crmCompanyID'
];
public function Company(){
return $this->belongsTo(Company::class, 'crmCompanyID');
}
}
$amoCRMIntegration=new AmoCRMIntegration($company->id);
$amoCRMIntegration->getLeadsWithContacts($all);
class AmoCRMIntegration{
public function __construct($crmCompanyID) {
$this->crmCompanyID=(int)$crmCompanyID;
}
....
function getLeadsWithContacts(){
F1::import($leads,$this->crmCompanyID,$constants);
}
....
}
class F1
public static function import($datas, $companyID, $constants=[])
{
foreach ($datas as $row) {
$mainUserField = $row->getResponsibleUserId();
//$companyID то сбрасывается (выдает нижележащую ошибку), то работает
По факту амоконтакт есть, но $companyID то равен пустому значению, то единичке.
$amoUserEntity = AmoUser::where('amoID', $mainUserField)->where('crmCompanyID',$companyID)->first();
if ($amoUserEntity===null){
$amoUserEntity=new AmoUser();
$amoUserEntity->amoID=$mainUserField;
$amoUserEntity->crmCompanyID=$companyID;
$amoUserEntity->name="fromLead";
$amoUserEntity->save();
}
}
а то выдает ошибку
Illuminate\Database\QueryException : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'crmCompanyID' cannot be null (SQL: insert into `crmAmoUser` (`crmCompanyID`, `amoID`, `updated`, `created`) values (, 11198626, 2025-01-07 19:25:50, 2025-01-07 19:25:50)