I used to select my tags in a multiple dropdown, but I changed it to a text field where I can manually input multiple tags. I then simply call a firstOrCreate
method and I then want to sync()
them to my model, but I cannot figure out how to do that. My code so far:
// Here I simply create my new model
$expense = auth()->user()->expenses()->create($request->all());
$tags = [];
// For each entered tag I grab it from the database or I create it
foreach(explode(",", $request->tags) as $tag)
{
$tags[] = auth()->user()->tags()->firstOrCreate(['name' => $tag]);
}
// Here is what I used to do, but I had an array of tag_ids
$expense->tags()->sync($tags);
Unsure what to do next, also my first time using firstOrCreate
, so any pointer on how to improve the above code perhaps would be also very welcome. But ofcourse my main question is, how to sync the tag objects to my newly created expense?