Передача значения функции в запросе laravel

Я хочу передать значения функции в запросе laravel. У меня есть функция getUser, которая возвращает $val=['nithya.sreeraman','jaivignesh.parthiban','aadhil.ahmed','aarthe.sathyanaraya','abdulamjad.babu','khaja.hussain']

function getUser() {
 $reportees=array();
 try{
 global $reportee_list;
 global $reportees; 
 /*stuff*/ 
  return $reportees;
 }
 catch{
 }
}
$val=getUser();
// print_r($val); 
 $program=DB::table('project')->whereIN('owner',$val)->pluck('project.name','project.code'); //I want to pass  $val in this query 

Я получаю ошибку

Invalid argument supplied for foreach()

при передаче $ val. но выполняется, когда я передаю как

 $program=DB::table('project')->whereIN('owner',['nithya.sreeraman','jaivignesh.parthiban','aadhil.ahmed','aarthe.sathyanaraya','abdulamjad.babu','khaja.hussain'])->pluck('project.name','project.code');

как передать значение функции в запросе laravel.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
137
1

Ответы 1

Здесь не так много информации, но, скорее всего, значение, возвращаемое getUser (), на самом деле не является массивом, поэтому whereIN () выдает ошибку.

Дважды проверьте, что вы получаете массив от getUser (). Это немного неуклюже, но быстро ....

$val=getUser();
echo('Is array: ' . is_array($val));

Если это массив, вы получите

Is array: 1

а если это не так

Is array: 0

[Дополнительно, на основе комментария ниже]

Поскольку возврат от getUser представляет собой строку, вам необходимо преобразовать ее в массив, чтобы передать ее в whereIN. В зависимости от вашей версии PHP есть два способа ....

Более старый PHP с использованием функции array ()

$program=DB::table('project')->whereIN('owner',array($val))->pluck('project.name','project.code')

PHP 5.4+ с использованием синтаксиса коротких массивов []

$program=DB::table('project')->whereIN('owner',[$val])->pluck('project.name','project.code')

или вернуть массив из getUser (), если это необходимо

return [$reportees];

Это строковое значение

user3386779 26.06.2018 13:53

Затем вам нужно превратить его в массив, прежде чем передавать его в whereIN. Я обновил свой ответ.

Phil Rennie 26.06.2018 14:18

Другие вопросы по теме