How can i save repeater field data to Tailor Global?
The code below does not work…
$post = EntryRecord::inSection('Catalog\Order');
$post->title = 'Test';
$post->status = 'New';
$post->items = ['title' => 'Test', 'price' => '100']; // repeater field
$post->save();
daft
#2
Hi @amristar
This code should work. The items need to be managed as individual models and after the parent model is created
$post = EntryRecord::inSection('Catalog\Order');
$post->title = 'Test 2';
$post->status = 'New';
$post->save();
$post->items()->create(['title' => 'Test', 'price' => '100']);
1 Like
Hey @daft.
So i found this but I’m getting an error now that is as follows:
Add [title] to fillable property to allow mass assignment on [Tailor\Models\RepeaterItem].
How would I get around this?
daft
#4
This should do the trick:
/*
! Don't use this
$post = EntryRecord::inSection('Catalog\Order');
$post->title = 'Test 2';
$post->status = 'New';
$post->save();
$item = new Tailor\Models\RepeaterItem;
$item->title = 'Test';
$item->price = 100;
$post->items()->add($item);
*/
1 Like
Hmm, that throws an error for me as well:
October\Rain\Element\ElementBase::useConfig(): Argument #1 ($config) must be of type array, null given
But this worked for me like a charm:
$fees = $booking->fees()->create();
$fees->title = 'this';
$fees->price = 25;
$fees->save();
1 Like
I will say, I already have the id and look it up like this:
$booking = EntryRecord::inSection('Bookings\Bookings')->find(139);
daft
#7
This is mentioned in the docs, so we’ll need to check it.
daft
#8
Alright, a patch has been added in v3.3.9 for this.
All fields defined by tailor are fillable by default, in addition to the “title” field. Fields should be set to guarded: true
to guard them.
There is also a workaround you can use to bypass the exception:
Model::unguard();
// ... code here ...
// eg: $post->items()->create(['title' => 'Test', 'price' => '100']);
Model::reguard();