Home > Enterprise >  How do I create insert related field value from id [Laravel]
How do I create insert related field value from id [Laravel]

Time:10-14

First of all sorry if my title question doesn't make sense, since I don't know how to word my problem and my English not that great. Okay, so

I have my controller

Buy::create([
            'master_item_id' => $request->master_item_id,
            'quantity_item' => $request->quantity_item,
            'price' => $request->price
        ]);

I have my view

<select id="master_item_id" name="master_item_id"
                            class="form-control @error('master_item_id') is-invalid @enderror">
                            <option></option>
                            @foreach($item as $value)
                            <option {{ old('master_item_id') ? 'selected' : '' }} value="{{ $value->id }}">
                                {{ $value->name_item }} |
                                Rp {{ number_format($value->price, 0, ',', '.')}}
                            </option>
                            @endforeach
                        </select>

How do I create insert 'price' from one form select above? I'm guessing you use where() or maybe find()? I've been flipping through website searching and couldn't find anything. Thanks!

CodePudding user response:

Using the model called MasterItem, this could work:

Buy::create([
    'master_item_id' => $request->master_item_id,
    'quantity_item' => $request->quantity_item,
    'price' => MasterItem::find($request->master_item_id)->price
]);

This does assume that master_item_id in your request represents the id or primary key of the MasterItem model. If not, and you cannot use find() then this would also work:

Buy::create([
    'master_item_id' => $request->master_item_id,
    'quantity_item' => $request->quantity_item,
    'price' => MasterItem::firstWhere('whatever_the_column_is_called', $request->master_item_id)->price
]);
  • Related