如何从文本输入向数据库插入id

时间:2017-03-18 20:33:39

标签: php mysql laravel laravel-5 eloquent

嗨,我一直在寻找超过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>

1 个答案:

答案 0 :(得分:0)

您可以使用eloquent按名称获取产品对象:

$product = Product::where('name', '=', request('name'));

然后访问产品ID:

$product->id

必须有更简单的解决方案,更优雅,但它会给你一个想法。

希望它有所帮助。