Laravel как вернуть значение NULL, когда отношение hasMany пустое

#php #laravel #laravel-5.8

#php #laravel #laravel-5.8

Вопрос:

В моем laravel приложении я хочу вернуть значение null , когда моя модель hasMany возвращает пустой массив! Как я могу этого добиться?

Я пытался сделать это:

 public function something(){
  $collection = $this->hasMany('AppModelsSomeModel');
  return $collection ? $collection : null
}
  

но это все равно возвращает

 {
   something: []
}
  

но я хочу, чтобы это отображалось:

 {
   something: null
}
  

итак, кто-нибудь может мне помочь?

Комментарии:

1. hasMany возвращает объект отношения, а не результирующий набор … и используйте какой-либо тип преобразователя или ресурс API, чтобы сделать вывод таким, каким вы хотите, чтобы он был для этой модели

2. используйте так return $collection ? $collection : 'null'

3. @A.ANoman это не коллекция, это объект типа отношения (не результат), и объекты оцениваются в true … итак, что у вас есть, это то же самое, что return $this->hasMany(...);

Ответ №1:

вы можете использовать функцию count() следующим образом:

 return count($collection) > 0 ? $collection : null;