Skip to content

Commit 52664ee

Browse files
Merge pull request #100 from iotronlab/patch-4
Update SelectTree.php added storeResults() method to get the data in disabledOptions/hiddenOptions
2 parents 08efd24 + 696f672 commit 52664ee

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,19 @@ For example: you have id, code and parent_code. Your model uses id as key, but t
156156
->withKey('code')
157157
```
158158

159+
Store fetched models for additional functionality
160+
161+
```PHP
162+
->storeResults()
163+
```
164+
165+
Now you can access the results in `disabledOptions` or `hiddenOptions`
166+
167+
```PHP
168+
->disabledOptions(function ($state, SelectTree $component) {
169+
$results = $component->getResults();
170+
})
171+
```
159172

160173
## Filters
161174

src/SelectTree.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ class SelectTree extends Field implements HasAffixActions
8282

8383
protected Closure|bool|null $withTrashed = false;
8484

85+
protected bool $storeResults = false;
86+
87+
protected Collection|array|null $results = null;
88+
8589
protected function setUp(): void
8690
{
8791
// Load the state from relationships using a callback function.
@@ -164,6 +168,11 @@ private function buildTree(): Collection
164168
// Combine the results from both queries
165169
$combinedResults = $nullParentResults->concat($nonNullParentResults);
166170

171+
// Store results for additional functionality
172+
if ($this->storeResults) {
173+
$this->results = $combinedResults;
174+
}
175+
167176
return $this->buildTreeFromResults($combinedResults);
168177
}
169178

@@ -374,11 +383,23 @@ public function enableBranchNode(bool $enableBranchNode = true): static
374383
return $this;
375384
}
376385

386+
public function storeResults(bool $storeResults = true): static
387+
{
388+
$this->storeResults = $storeResults;
389+
390+
return $this;
391+
}
392+
377393
public function getTree(): Collection|array
378394
{
379395
return $this->evaluate($this->buildTree());
380396
}
381397

398+
public function getResults(): Collection|array|null
399+
{
400+
return $this->evaluate($this->results);
401+
}
402+
382403
public function getExpandSelected(): bool
383404
{
384405
return $this->evaluate($this->expandSelected);

0 commit comments

Comments
 (0)