#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;