передача значения функции в запросе laravel - PullRequest
0 голосов
/ 26 июня 2018

Я хочу передать значения функции в запросе 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 

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

В foreach указан неверный аргумент ()

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

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

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

1 Ответ

0 голосов
/ 26 июня 2018

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

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

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

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

Is array: 1

и, если это не

Массив: 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...