Is $profile saved to the database?
Mass assignment issue? Have you set guarded or fillable?
Are you using transaction?
Try removing all queries when assembling data, and put simple text string or integer in their places
Examine the actual tables.
Why isn't this working?
$profile->load([ 'surveyCharts', ...]);
if ($profile->firstVal === 'Role') {
if ($profile->secondVal === 'Supervisor') {
$profile->surveyCharts()->createMany([
[
'title' => SurveyChartQuery::query()->firstWhere('name', 'summary-supervisor')->display_name,
'options' => "{data:{item_name:true, item_image:true, item_detail:true, item_grade:true}}",
'number' => 1,
'chart_type_id' => ChartType::query()->firstWhere('name', 'item-summary')->id,
'survey_chart_query_id' => SurveyChartQuery::query()->firstWhere('name', 'summary-supervisor')->id,
],
[...]
]);
} else if ($profile->secondVal === 'Coordinador') {
$profile->surveyCharts()->createMany([
[
'title' => SurveyChartQuery::query()->firstWhere('name', 'summary-coordinator')->display_name,
'options' => json_encode('{data:{item_name:true, item_image:true, item_detail:true, item_grade:true}}'),
'number' => 1,
'chart_type_id' => ChartType::query()->firstWhere('name', 'item-summary')->id,
'survey_chart_query_id' => SurveyChartQuery::query()->firstWhere('name', 'summary-coordinator')->id,
],
[...]
]);
} else if ($profile->secondVal === 'Mercaderista') {
$profile->surveyCharts()->createMany([
[
'title' => SurveyChartQuery::query()->firstWhere('name', 'summary-merchandiser')->display_name,
'options' => "{data:{item_name:true, item_image:true, item_detail:true, item_grade:true}}",
'number' => 1,
'chart_type_id' => ChartType::query()->firstWhere('name', 'item-summary')->id,
'survey_chart_query_id' => SurveyChartQuery::query()->firstWhere('name', 'summary-merchandiser')->id,
],
[...]
]);
}
} else if ($profile->firstVal === 'SalePoint') {
$profile->surveyCharts()->createMany([
[
'title' => SurveyChartQuery::query()->firstWhere('name', 'summary-sale-point')->display_name,
'options' => json_encode('{data:{item_name:true, item_business_name:true, item_address:true, item_format:true, item_grade:true, item_image:true, item_merchant:true, item_supervisor:true}}'),
'number' => 1,
'chart_type_id' => ChartType::query()->firstWhere('name', 'item-summary')->id,
'survey_chart_query_id' => SurveyChartQuery::query()->firstWhere('name', 'summary-sale-point')->id,
],
[...]
]);
}
I removed all the charts except for the first one, but each one has a different amount, after I set them I have a dd($profile) but surveyCharts is always empty. Why isn't it getting saved?
Please or to participate in this conversation.