如何从Laravel中的数据库获取产品ID

时间:2019-06-30 11:19:40

标签: php mysql laravel laravel-5

我试图通过使用隐藏的输入从数据库中获取产品ID,但是卡住了;我收到错误General error: 1366 Incorrect integer value: '[{"id":1}]' for column 'product_id'。如何从数据库中获取产品ID?

刀片

<input type="hidden" name="id" value="" />

控制器

Image::create(array_merge($formInput,
    [
        $id = $request->input('id'),
        $product_id = Product::find('id'),
        'product_id' => $product_id,

    ])); 

已更新

这是我更新的控制器。

Image::create(array_merge($formInput,
[
    $id = $request->input('id'),
    $product = Product::get($id),
    'product_id' =>$product->id,

])); 

2 个答案:

答案 0 :(得分:0)

使用Model::get('column')样式时,它将返回模型对象。不仅是列值。这样您就可以达到以下列值:

Image::create(
    array_merge(
        $formInput,
       [
           $id=$request->input('id'),
           $product = Product::get($id),
           'product_id' => $product->id,
       ])
); 

答案 1 :(得分:0)

  1. 用户$id而非'id'
  2. 获取$product对象
  3. 使用产品的id
  4. 使用::find(id)

因此,在您的代码中,更改

  $id=$request->input('id'),
    $product_id=Product::get('id'),
    'product_id' =>$product_id,

  $id=$request->input('id'),
    $product=Product::find($id), /// I assume id is the PK
    'product_id' =>$product->id