Releases: BinarCode/laravel-restify
4.5.4
4.5.3
4.5.2
4.5.1
4.5.0
Added
- Sorting by
belongsTo
relationship:
Sometimes you may need to sort by a belongsTo
relationship. This become a breeze with Restify. Firstly you have to
instruct your sort to use a relationship:
// PostRepository
use Binaryk\LaravelRestify\Fields\BelongsTo;
use Binaryk\LaravelRestify\Filters\SortableFilter;
public static function sorts(): array
{
return [
'users.name' => SortableFilter::make()
->setColumn('users.name')
->usingBelongsTo(
BelongsTo::make('user', 'user', UserRepository::class),
)
];
}
Make sure that the column is fully qualified (include the table name).
The request could look like:
GET: /api/restify/posts?sort=-users.name
This will return all posts, sorted descending by users name.
4.4.0
Added
-
Support for
integer
column type for theartisan restify:stub
command. -
Support for managing related entities via Eager fields. For example, if you want to have in relationships an
BelongsTo
field:
//PostRepository.php
public static function getRelated()
{
return [
'owner' => BelongsTo::make('owner', 'owner', UserRepository::class),
];
}
Then you can get it via related as usual:
/api/restify/posts?related=owner
And the returned object in the relationships will be formatted using UserRepository fields, so you can attach policies and permissions for specific fields in the repository itself.
4.3.0
4.2.0
Added
Match definition
You can implement a match filter definition, and specify for example related repository:
public static $match = [
'title' => 'string',
'user_id' => MatchFilter::make()
->setType('int')
->setRelatedRepositoryKey(UserRepository::uriKey()),
];
When you will list this filter (with posts/filters?only=matches
), you will get:
{
"class": "Binaryk\LaravelRestify\Filters\MatchFilter"
"key": "matches"
"type": "string"
"column": "title"
"options": []
},
{
"class": "Binaryk\LaravelRestify\Filters\MatchFilter"
"key": "matches"
"type": "int"
"column": "user_id"
"options": []
"related_repository_key": "users"
"related_repository_url": "//users"
}
4.1.1
Changed
- Changed the method signature of the
fromRelation
andfromBuilder
methods for the repository cast.
abstract public static function fromBuilder(RestifyRequest $request, Builder $builder, Repository $repository): Collection;
abstract public static function fromRelation(RestifyRequest $request, Relation $relation, Repository $repository): Collection;
4.1.0
Added
- Support for using a custom related cast class (aka transformer). You can do so by modifying the
restify.casts.related
property. The default related cast isBinaryk\LaravelRestify\Repositories\Casts\RelatedCast
.
The cast class should extends the Binaryk\LaravelRestify\Repositories\Casts\RepositoryCast
abstract class.
Copy the default config to your restify.php
configuration:
'casts' => [
/*
|--------------------------------------------------------------------------
| Casting the related entities format.
|--------------------------------------------------------------------------
|
*/
'related' => \Binaryk\LaravelRestify\Repositories\Casts\RelatedCast::class,
],