Все, что я хочу здесь, это иметь возможность сохранять все идентификаторы услуг в сводной таблице, связанной с заданными ключевыми словами / тегами, но на данный момент все, что он делает, это то, что он берет последний идентификатор созданного объекта и сохраняет в сводная таблица с разными ключевыми словами. скажем, например, я ввожу [id1 => service1, id2 => service2] и [id1 => keyword1, id2 => keyword2, id3 => keyword3] вместо того, чтобы сохранить только id2 из service2 и все ключевые слова, которые я хочу сохранить все идентификаторы всех услуг и ключевые слова. Я надеюсь, что это имеет смысл
foreach($params['service'] as $key => $value){
$service = Service::firstOrNew(['service' => $value, 'price' => $params['price'][$key], 'business_id' => $params['business_id']]);
$service->service = $value;
$service->price = $params['price'][$key];
$service->business_id = $params['business_id'];
$service->save();
}
foreach($params['keywords'] as $keyword){
$cleaned_keyword = self::cleanKeywords($keyword);
$newKeyword = Keyword::firstOrNew(['keyword' => $cleaned_keyword]);
$newKeyword->keyword = $cleaned_keyword;
$newKeyword->save();
$service->keywords()->syncWithoutDetaching([$newKeyword->id => ['business_id' => $params['business_id']]]);
}
Это то, что я ожидал, но это сложно, потому что один или два сервиса, например, могут иметь несколько ключевых слов. ПРИМЕЧАНИЕ: я вручную изменил эти значения в базе данных
Это результаты от dd ($ params)
На основании dd ($ params) .attached - результат, только
"service" => array:2[
1 => "Mobile development"
]
был сохранен в сводной таблице и получил все ключевые слова