PHP code example of abather / relation-components
1. Go to this page and download the library: Download abather/relation-components library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
abather / relation-components example snippets
use Abather\RelationComponents\Tables\Columns\BelongsToColumn;
use Abather\RelationComponents\Infolists\Components\BelongsToEntry;
BelongsToColumn::make(UserResource::class)
BelongsToEntry::make(UserResource::class)
BelongsToColumn::make(UserResource::class)
->page('edit') // default: 'view'
->withIcon(false) // default: true
->label('Owner')
->color('success')
use Abather\RelationComponents\Tables\Columns\MorphToColumn;
use Abather\RelationComponents\Infolists\Components\MorphToEntry;
MorphToColumn::make('subject')
->types([
Farm::class => FarmResource::class,
Plot::class => PlotResource::class,
])
MorphToEntry::make('subject')
->types([
Farm::class => FarmResource::class,
Plot::class => PlotResource::class,
])
> // In your resource:
> public static function getEloquentQuery(): Builder
> {
> return parent::getEloquentQuery()->with('subject');
> }
>
use Abather\RelationComponents\Forms\Components\BelongsToSelect;
BelongsToSelect::make(UserResource::class)
BelongsToSelect::make(UserResource::class)
->withIcon(false) // default: true — shows resource icon as suffix
->preload(false) // default: true
->label('Assigned To')
use Abather\RelationComponents\Forms\Components\BelongsToSelect;
use Abather\RelationComponents\Tables\Columns\BelongsToColumn;
use Abather\RelationComponents\Tables\Columns\MorphToColumn;
use Abather\RelationComponents\Infolists\Components\BelongsToEntry;
use Abather\RelationComponents\Infolists\Components\MorphToEntry;
public function boot(): void
{
BelongsToSelect::configureUsing(fn (BelongsToSelect $select) => $select
->preload(false)
->withIcon(false)
);
BelongsToColumn::configureUsing(fn (BelongsToColumn $column) => $column
->color('primary')
->openUrlInNewTab(false)
);
MorphToEntry::configureUsing(fn (MorphToEntry $entry) => $entry
->color('warning')
);
}
BelongsToColumn::make(UserResource::class)
->color('success')
->icon('heroicon-o-user')
->openUrlInNewTab(false)
MorphToEntry::make('subject')
->types([Farm::class => FarmResource::class])
->color('warning')
->icon(null)
BelongsToColumn::make(UserResource::class)
->hideWhenNotAuthorizedToView()
BelongsToEntry::make(UserResource::class)
->hideWhenNotAuthorizedToView()
MorphToEntry::make('subject')
->types([Farm::class => FarmResource::class])
->hideWhenNotAuthorizedToView()
BelongsToColumn::make(UserResource::class)
->hiddenOn([])