Как получить идентификатор продукта из базы данных в Laravel - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь получить идентификатор продукта из базы данных, используя скрытый ввод, но я застрял;Я получаю ошибку General error: 1366 Incorrect integer value: '[{"id":1}]' for column 'product_id'.Как получить идентификатор продукта из базы данных?

Blade

<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 голосов
/ 30 июня 2019
  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
0 голосов
/ 30 июня 2019

Когда вы используете стиль Model::get('column'), он возвращает объект модели.Не только значение столбца.Таким образом, вы достигнете значения столбца следующим образом:

Image::create(
    array_merge(
        $formInput,
       [
           $id=$request->input('id'),
           $product = Product::get($id),
           'product_id' => $product->id,
       ])
); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...