У меня есть модель под названием кампании, которая принимает следующую структуруLaravel 5 - модель данных удаление ребенка
+----+--------------+-----------------+----------+---------------+--------------+--------------------+----------+-------+--------+---------------------+---------------------+
| id | campaignName | userId | clientId | clientContact | contactEmail | campaignObjectives | acNumber | notes | active | created_at | updated_at |
+----+--------------+-----------------+----------+---------------+--------------+--------------------+----------+-------+--------+---------------------+---------------------+
| 1 | test | 7 | 10 | Mr Fakes | 12345 | sdfsdfsd | 12345 | | 0 | 2016-02-29 11:51:59 | 2016-02-29 13:51:28 |
+----+--------------+-----------------+----------+---------------+--------------+--------------------+----------+-------+--------+---------------------+---------------------+
Я тогда CampaignTypes модель со следующей структурой
+----+--------------+-----------------+------------+---------------------+---------------------+
| id | campaignType | creativeArrival | campaignId | created_at | updated_at |
+----+--------------+-----------------+------------+---------------------+---------------------+
| 14 | Dynamic | 2016-02-26 | 1 | 2016-02-23 16:00:01 | 2016-02-23 16:00:01 |
+----+--------------+-----------------+------------+---------------------+---------------------+
отношения в этих моделях довольно прямолинейно. Кампания может иметь много CampaignTypes, а CamapignType принадлежит кампании.
В схеме кампании у меня есть активный столбец. Это то, что я использую для удаления кампании. Таким образом, метод уничтожения выглядит следующим образом
public function destroy(Campaign $campaign)
{
$campaign->update([
'active' => false
]);
Session::flash('flash_message', 'Campaign deleted');
Session::flash('flash_type', 'alert-success');
return Redirect::route('campaigns.index')->with('message', 'Campaign deleted.');
}
Теперь, хотя это не вызывает слишком много проблем, я в настоящее время не установлен какая-либо CampaignTypes строки, как удаляются, если его родитель кампания была удалена.
Каким будет лучший способ удалить дочерние данные, фактически не удалив его?
Благодаря
Использование мягкого удаления? – matiit
Когда вы «удаляете» своего родителя (действительно мягко удаляете его), хотите ли вы, чтобы типы кампаний были действительно удалены или у них также был столбец базы данных со значением, которое было изменено? –
Я добавил обновленный ответ, который, я думаю, полностью объясняет ваши варианты лучше.Пожалуйста, дайте мне знать, если мой ответ имеет смысл, если он не совсем сделает то, что вы ищете. –