嗨,我一直在寻找超过2个小时的方法,所以我会在这里问。
我有一个带有product_id的eventlineitems表。在创建表单上,我想输入产品名称,当表单提交控制器时,设置具有该名称的产品的product_id。
EventLineItems(hasOne product& belongsTo event)
id
event_id
product_id
产品
id
name
EventLineItemsController
public function store(Request $request)
{
$this->validate(request(), [
'event_id' => 'required',
'product_id' => 'required',
'quantity' => 'required'
]);
$lineItem = new EventLineItem;
$lineItem->event_id = $request->input('event_id');
$lineItem->product_id = $request->input('product_id');
$lineItem->quantity = $request->input('quantity','1');
$lineItem->save();
return back()->with('status','Product Added');
}
view.blade
<input type="text" name="product_id" id="product_id" class="typeahead form-control" placeholder="Enter a product ID" required>
答案 0 :(得分:0)
您可以使用eloquent按名称获取产品对象:
$product = Product::where('name', '=', request('name'));
然后访问产品ID:
$product->id
必须有更简单的解决方案,更优雅,但它会给你一个想法。
希望它有所帮助。