Model::updateOrCreate(['amoID' => 43222233, 'crmCompanyID'=>1]);
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 1364 Field 'crmCompanyID' doesn't have a default value (SQL: insert into `Model` (`amoID`, `updated`, `created`) values (43222233, 2025-01-05 20:41:11, 2025-01-05 20:41:11))
class Model extends BaseCRM
{
protected $table = 'crmAmoContact';
protected $casts = [
'created' => 'datetime',
'updated' => 'datetime',
'name' => 'string',
'phone' => 'string',
'phone1' => 'string',
'phoneNorm' => 'string',
'email'=>'string',
'amoID' => 'int',
'crmAmoUserID' => 'int',
'crmAmoUser2ID' => 'int',
'crmAmoContactTypeID' => 'int',
'crmCompanyID' => 'int',
];
protected $fillable = [
'name',
'amoID',
// 'crmCompanyID'
];
...
}
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId(),'crmCompanyID'=>$companyID]);
protected $fillable = [
'name',
'amoID',
'crmCompanyID'
];
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId(),'crmCompanyID'=>$companyID]);
//тоже не учитывает второй элемент массива первого параметра,несмотря на то, что
protected $fillable = [
'name',
'amoID',
'crmCompanyID'
];
//заполнено
Integrity constraint violation: 1048 Column 'crmCompanyID' cannot be null (SQL: insert into `crmAmoContact` (`amoID`, `crmCompanyID`, `updated`, `created`) values (42397607, , 2025-01-06 17:31:54, 2025-01-06 17:31:54))
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId(),'crmCompanyID'=>$companyID]);Магия вне Хогвардса хреново работает, так что остается полагаться на логику. Так как мы здесь видим переменную, а не значение, можно предположить что там не то значение, которое вы ожидаете. Поможет dd() или var_dump().
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId()],['crmCompanyID'=>$companyID]);
AmoContact::firstOrNew(['amoID' => $contacts[0]->getId(),'crmCompanyID'=>$companyID]);
$amoContactEntity = AmoContact::where('amoID',$contacts[0]->getId())->where('crmCompanyID',$companyID)->first();
if ($amoContactEntity===null){
$amoContactEntity=new AmoContact();
$amoContactEntity->crmCompanyID=(int)$companyID;
$amoContactEntity->amoID=$contacts[0]->getId();
$amoContactEntity->name="fromLead";
$amoContactEntity->save();
}
$entity->crmAmoContact2ID = $amoContactEntity->id;
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)
class AmoContact extends BaseCRM
{
protected $table = 'crmAmoContact';
protected $casts = [
'created' => 'datetime',
'updated' => 'datetime',
'name' => 'string',
'phone' => 'string',
'phone1' => 'string',
'phoneNorm' => 'string',
'email'=>'string',
'amoID' => 'int',
'crmAmoUserID' => 'int',
'crmAmoUser2ID' => 'int',
'crmAmoContactTypeID' => 'int',
'crmCompanyID' => 'int',
];
protected $fillable = [
'name',
'amoID',
'crmCompanyID' //не учитывает в AmoContact::firstOrNew(['amoID' => $mainUserField,'crmCompanyID'=>$companyID]), AmoContact::updateOrCreate(['amoID' => $mainUserField,'crmCompanyID'=>$companyID])
];
.....
}
$amoContactEntity = AmoContact::where('amoID',$contacts[0]->getId())->where('crmCompanyID',$companyID)->first();
if ($amoContactEntity===null){
$amoContactEntity=new AmoContact();
$amoContactEntity->crmCompanyID=(int)$companyID;
$amoContactEntity->amoID=$contacts[0]->getId();
$amoContactEntity->name="fromLead";
$amoContactEntity->save();
}
$entity->crmAmoContact2ID = $amoContactEntity->id;
foreach ($companies as $company){
$amoCRMIntegration=new AmoCRMIntegration($company->id);
$amoCRMIntegration->getContacts($all); // пробовала передать $amoCRMIntegration->getLeadsWithContacts($all,(int)$company->id); .. все равно никак
}
Integrity constraint violation: 1048 Column 'crmCompanyID' cannot be null (SQL: insert into `crmAmoContact` (`amoID`, `crmCompanyID`, `name`, `updated`, `created`) values (142, , FromLead, 2025-01-07 22:36:29, 2025-01-07 22:36:29))
AmoLeadModel::import($leads,$this->crmCompanyID,$constants);
$amoStatusEntity = AmoStatus::where('amoID', $row->getStatusId())->where('crmCompanyID',$companyID)->first();
if ($amoStatusEntity===null){
//статус существует, но все равно попадает сюда, значит второй where не обрабатывает почему то....
var_dump($companyID); //int(1)
echo $companyID; //1
$amoStatusEntity=new AmoStatus();
$amoStatusEntity->amoID=$row->getStatusId();
$amoStatusEntity->crmCompanyID=$companyID;
$amoStatusEntity->name="fromLead";
$amoStatusEntity->save();
}
int(1)
1
Illuminate\Database\QueryException : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'crmCompanyID' cannot be null (SQL: insert into `crmAmoStatus` (`amoID`, `crmCompanyID`, `name`, `updated`, `created`) values (142, , FromLead, 2025-01-07 23:01:44, 2025-01-07 23:01:44))
class AmoStatus extends BaseCRM
{
protected $table = 'crmAmoStatus';
protected $casts = [
'created' => 'datetime',
'updated' => 'datetime',
'name' => 'string',
'amoID' => 'int',
'crmCompanyID' => 'int',
];
protected $fillable = [
'name',
'amoID',
'crmCompanyID'
];
protected $fillable = [
'name',
'amoID',
// 'crmCompanyID'
];
Model::updateOrCreate(
['amoID' => 43222233], // Условия для поиска
['crmCompanyID' => 1, 'updated' => now(), 'created' => now()] // Данные для обновления или создания
);
Model::updateOrCreate(
['amoID' => 43222233, 'crmCompanyID' => 1], // Условия для поиска
['updated' => now(), 'created' => now()] // Данные для обновления или создания
);
Column 'crmCompanyID' cannot be null (SQL: insert into `crmAmoContact` (`amoID`, `crmCompanyID`, `updated`, `created`) values (42397607, , 2025-01-06 17:31:54, 2025-01-06 17:31:54))
'updated' => "2024-01-01 22:00:24", 'created' => now()
, что мне не подходит.