Get current form values
How can I get a value from the form to pass to the relationship manager?
public static function getRelations(): array
{
return [
EmployeesRelationManager::make([
'employeeId' => .....,
]),
];
}public static function getRelations(): array
{
return [
EmployeesRelationManager::make([
'employeeId' => .....,
]),
];
}Solution
I have solved it with the mutate and $livewire->getOwnerRecord()
<?php
namespace App\Filament\Resources\TicketResource\RelationManagers;
use App\Filament\Resources\TaskResource;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Model;
class TasksRelationManager extends RelationManager
{
public function isReadOnly(): bool
{
return false;
}
protected static string $relationship = 'tasks';
public static function getTitle(Model $ownerRecord, string $pageClass): string
{
return trans('task.resource.label');
}
public function getTablePluralModelLabel(): string
{
return trans('task.resource.label');
}
public function getTableModelLabel(): string
{
return trans('task.resource.single');
}
public function form(Form $form): Form
{
return TaskResource::form($form)
->columns(1);
}
public function table(Table $table): Table
{
return TaskResource::table($table)
->headerActions([
Tables\Actions\CreateAction::make()
->mutateFormDataUsing(function (array $data, RelationManager $livewire): array {
$data['customer_id'] = $livewire->getOwnerRecord()->customer_id;
return $data;
})
->slideOver(),
])->filters([
Tables\Filters\TernaryFilter::make('is_processed')
->label(trans('task.resource.processed')),
]);
}
}<?php
namespace App\Filament\Resources\TicketResource\RelationManagers;
use App\Filament\Resources\TaskResource;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Model;
class TasksRelationManager extends RelationManager
{
public function isReadOnly(): bool
{
return false;
}
protected static string $relationship = 'tasks';
public static function getTitle(Model $ownerRecord, string $pageClass): string
{
return trans('task.resource.label');
}
public function getTablePluralModelLabel(): string
{
return trans('task.resource.label');
}
public function getTableModelLabel(): string
{
return trans('task.resource.single');
}
public function form(Form $form): Form
{
return TaskResource::form($form)
->columns(1);
}
public function table(Table $table): Table
{
return TaskResource::table($table)
->headerActions([
Tables\Actions\CreateAction::make()
->mutateFormDataUsing(function (array $data, RelationManager $livewire): array {
$data['customer_id'] = $livewire->getOwnerRecord()->customer_id;
return $data;
})
->slideOver(),
])->filters([
Tables\Filters\TernaryFilter::make('is_processed')
->label(trans('task.resource.processed')),
]);
}
}