如何从 id [Laravel] 创建插入相关字段值

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

首先,如果我的标题问题没有意义,我很抱歉,因为我不知道如何表达我的问题,而且我的英语也不是很好。好的,所以

我有控制器

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

我有我的看法

<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>

如何从上面的一种形式 select 创建插入 'price'?我猜你使用 where() 或者 find()?我一直在浏览网站搜索,但找不到任何东西。谢谢!

使用名为 MasterItem 的模型,这可能有效:

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

这确实假定您请求中的 master_item_id 代表 idMasterItem 模型的主键。 如果不是,并且您不能使用 find() 那么这也可以:

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
]);