получение значения из базы данных в строке с помощью построителя запросов

#php #laravel #laravel-5 #controller #laravel-query-builder

#php #laravel #laravel-5 #контроллер #laravel-query-builder

Вопрос:

итак, в контроллере я получаю значение из формы ввода в строке, т.е. product_name

 return $request->input('product_name');
  

И от имени этого я хочу получить product_id этого продукта из таблицы базы данных с помощью построителя запросов

 return category::where('product_name',$request->input('product_name'))->get('product_id');
  

проблема в том, что я получаю значение в форме массива, но я хочу, чтобы это значение было в строке

// вывод

[{«product_id»:7}]

но я хочу, чтобы оно было в строке, например

7

пожалуйста, помогите добиться этого в одной строке с помощью построителя запросов, заранее спасибо

Ответ №1:

Используйте value метод для получения единственного значения:

 category::where('product_name', $request->input('product_name'))
    ->value('product_id')
  

Документы Laravel 5.8 — Запросы — Получение результатов — извлечение одной строки / столбца из таблицы value

Ответ №2:

Это должно сработать:

  return category::where('product_name',$request->input('product_name'))
->first()->pluck('product_id');
  

Похоже, вам нужна только одна запись. Для этого вы должны использовать first() вместо get() .