mirror of
https://github.com/snipe/snipe-it.git
synced 2025-03-05 20:52:15 -08:00
Always return an array from selectValues method
This commit is contained in:
parent
4fc8e8dd61
commit
7f153b32e4
|
@ -76,17 +76,17 @@ class ReportTemplate extends Model
|
||||||
return $this->options[$property] ?? null;
|
return $this->options[$property] ?? null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function selectValues(string $property, string $model = null)
|
public function selectValues(string $property, string $model = null): iterable
|
||||||
{
|
{
|
||||||
if (!isset($this->options[$property])) {
|
if (!isset($this->options[$property])) {
|
||||||
return null;
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// @todo: I think this was added to support the null object pattern
|
// @todo: I think this was added to support the null object pattern
|
||||||
// @todo: Check if this is still needed and if so, add a test for it.
|
// @todo: Check if this is still needed and if so, add a test for it (testParsingSelectValues()).
|
||||||
if ($this->options[$property] === [null]) {
|
// if ($this->options[$property] === [null]) {
|
||||||
return null;
|
// return null;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// If a model is provided then we should ensure we only return
|
// If a model is provided then we should ensure we only return
|
||||||
// the ids of models that exist and are not deleted.
|
// the ids of models that exist and are not deleted.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<select class="js-data-ajax" data-endpoint="departments" data-placeholder="{{ trans('general.select_department') }}" name="{{ $fieldname }}" style="width: 100%" id="department_select" aria-label="{{ $fieldname }}"{{ (isset($multiple) && ($multiple=='true')) ? " multiple='multiple'" : '' }}>
|
<select class="js-data-ajax" data-endpoint="departments" data-placeholder="{{ trans('general.select_department') }}" name="{{ $fieldname }}" style="width: 100%" id="department_select" aria-label="{{ $fieldname }}"{{ (isset($multiple) && ($multiple=='true')) ? " multiple='multiple'" : '' }}>
|
||||||
@isset ($selected)
|
@isset ($selected)
|
||||||
@if (!is_array($selected))
|
@if (!is_iterable($selected))
|
||||||
@php
|
@php
|
||||||
$selected = [$selected];
|
$selected = [$selected];
|
||||||
@endphp
|
@endphp
|
||||||
|
|
|
@ -80,14 +80,17 @@ class ReportTemplateTest extends TestCase
|
||||||
{
|
{
|
||||||
$template = ReportTemplate::factory()->create([
|
$template = ReportTemplate::factory()->create([
|
||||||
'options' => [
|
'options' => [
|
||||||
'is_an_array' => ['2', '3', '4'],
|
'an_array' => ['2', '3', '4'],
|
||||||
'is_an_array_containing_null' => [null],
|
'an_empty_array'=> [],
|
||||||
|
'an_array_containing_null' => [null],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->assertEquals(['2', '3', '4'], $template->selectValues('is_an_array'));
|
$this->assertEquals(['2', '3', '4'], $template->selectValues('an_array'));
|
||||||
$this->assertEquals(null, $template->selectValues('non_existent_key'));
|
$this->assertEquals([], $template->selectValues('an_empty_array'));
|
||||||
$this->assertNull($template->selectValues('is_an_array_containing_null'));
|
// @todo: should this actually be []?
|
||||||
|
$this->assertEquals([null], $template->selectValues('an_array_containing_null'));
|
||||||
|
$this->assertEquals([], $template->selectValues('non_existent_key'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSelectValueDoesNotIncludeDeletedOrNonExistentModels()
|
public function testSelectValueDoesNotIncludeDeletedOrNonExistentModels()
|
||||||
|
|
Loading…
Reference in a new issue