add nova
This commit is contained in:
76
nova/src/ResourceCollection.php
Normal file
76
nova/src/ResourceCollection.php
Normal file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace Laravel\Nova;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
/**
|
||||
* @template TKey of array-key
|
||||
* @template TValue
|
||||
*
|
||||
* @extends \Illuminate\Support\Collection<TKey, TValue>
|
||||
*/
|
||||
class ResourceCollection extends Collection
|
||||
{
|
||||
/**
|
||||
* Return the authorized resources of the collection.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return static<TKey, TValue>
|
||||
*/
|
||||
public function authorized(Request $request)
|
||||
{
|
||||
return $this->filter(function ($resource) use ($request) {
|
||||
return $resource::authorizedToViewAny($request);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the resources available to be displayed in the navigation.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return static<TKey, TValue>
|
||||
*/
|
||||
public function availableForNavigation(Request $request)
|
||||
{
|
||||
return $this->filter(function ($resource) use ($request) {
|
||||
return $resource::availableForNavigation($request);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the searchable resources for the collection.
|
||||
*
|
||||
* @return static<TKey, TValue>
|
||||
*/
|
||||
public function searchable()
|
||||
{
|
||||
return $this->filter(function ($resource) {
|
||||
return $resource::$globallySearchable;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort the resources by their group property.
|
||||
*
|
||||
* @return \Illuminate\Support\Collection<string, \Laravel\Nova\ResourceCollection<array-key, TValue>>
|
||||
*/
|
||||
public function grouped()
|
||||
{
|
||||
return $this->groupBy(function ($resource, $key) {
|
||||
return (string) $resource::group();
|
||||
})->toBase()->sortKeys();
|
||||
}
|
||||
|
||||
/**
|
||||
* Group the resources for display in navigation.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Support\Collection<string, \Laravel\Nova\ResourceCollection<array-key, TValue>>
|
||||
*/
|
||||
public function groupedForNavigation(Request $request)
|
||||
{
|
||||
return $this->availableForNavigation($request)->grouped();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user