У меня есть данные JSON, и я хочу сохранить все данные в базе данных одновременно. Схема базы данных показана на рисунке. так что я могу видеть здесь второй порядок HAS_MANY
отношение esaverelatedbehavior
Позвольте мне сохранить только данные первого заказа, например, company_*
, Есть ли способ сохранить все данные сразу во все таблицы?
Невозможно вставить данные во многие таблицы одним запросом на вставку
Вы должны использовать транзакции для выполнения многих вставок
public function saveJsonData()
{
/**
* parsing your json data
*/
$transaction = Yii::app()->db->beginTransaction();
try {
$company = new Company();
$company->setAttributes($company_data);
if (!$company->save()) {
throw new Exception('some exception');
}
foreach ($otherCompanyRelatedDataList as $data) {
$otherCompanyData = new OtherCompanyData();
$otherCompanyData->setAttributes($data);
if (!$otherCompanyData->save()){
throw new Exception('some exception');
}
}
/**
* save other data
*/$transaction->commit();
} catch (Exception $e) {
$transaction->rollback();
}
}
Других решений пока нет …