Comments (3)
Hi @hadolen, could you please provide a form code example where this doesn't work? Thanks
from filament.
This code doesn't work
<?php
namespace App\Filament\Resources\ProductResource\RelationManagers;
use Filament\Resources\Forms\Components;
use Filament\Resources\Forms\Form;
use Filament\Resources\RelationManager;
use Filament\Resources\Tables\Columns;
use Filament\Resources\Tables\Filter;
use Filament\Resources\Tables\Table;
class OptionsRelationManager extends RelationManager
{
public static $primaryColumn = '';
public static $relationship = 'options';
public static function form(Form $form)
{
return $form
->schema([
Components\BelongsToSelect::make('option_id')->relationship('option', 'title')->preload()->dependable(),
Components\BelongsToSelect::make('option_value_id')->preload()->relationship('option_value', 'title')->when(
function ($record) {
return true;
},
function ($field) {
$field->relationship('option_value', 'title', function ($query) use ($field) {
return $query->where('option_id', $field->getRecord() == null ? 0 : $field->getRecord()->option_id);
});
}
),
]);
}
public static function table(Table $table)
{
return $table
->columns([
//
])
->filters([
//
]);
}
}
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\ProductResource\Pages;
use App\Filament\Resources\ProductResource\RelationManagers;
use App\Filament\Roles;
use Filament\Resources\Forms\Components;
use Filament\Resources\Forms\Form;
use Filament\Resources\Resource;
use Filament\Resources\Tables\Columns;
use Filament\Resources\Tables\Filter;
use Filament\Resources\Tables\Table;
class ProductResource extends Resource
{
public static $icon = 'heroicon-o-collection';
public static function form(Form $form)
{
return $form
->schema([
Components\TextInput::make('title')->autofocus()->required(),
Components\RichEditor::make('description')->required(),
Components\TextInput::make('price')->numeric()->min(0)->extraAttributes(['step' => 0.10])->required(),
]);
}
public static function table(Table $table)
{
return $table
->columns([
Columns\Text::make('title')->sortable()->searchable()->primary(),
Columns\Text::make('price')->sortable(),
])
->filters([
//
]);
}
public static function relations()
{
return [
RelationManagers\OptionsRelationManager::class,
];
}
public static function routes()
{
return [
Pages\ListProducts::routeTo('/', 'index'),
Pages\CreateProduct::routeTo('/create', 'create'),
Pages\EditProduct::routeTo('/{record}/edit', 'edit'),
];
}
}
But similar code outside relation manager work fine.
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\ProductOptionResource\Pages;
use App\Filament\Resources\ProductOptionResource\RelationManagers;
use App\Filament\Roles;
use Filament\Resources\Forms\Components;
use Filament\Resources\Forms\Form;
use Filament\Resources\Resource;
use Filament\Resources\Tables\Columns;
use Filament\Resources\Tables\Filter;
use Filament\Resources\Tables\Table;
class ProductOptionResource extends Resource
{
public static $icon = 'heroicon-o-collection';
public static function form(Form $form)
{
return $form
->schema([
Components\BelongsToSelect::make('product_id')->relationship('product', 'title')->preload(),
Components\BelongsToSelect::make('option_id')->relationship('option', 'title')->preload()->dependable(),
Components\BelongsToSelect::make('option_value_id')->preload()->relationship('option_value', 'title')->when(
function ($record) {
return true;
},
function ($field) {
$field->relationship('option_value', 'title', function ($query) use ($field) {
return $query->where('option_id', $field->getRecord() == null ? 0 : $field->getRecord()->option_id);
});
}
),
]);
}
public static function table(Table $table)
{
return $table
->columns([
//
])
->filters([
//
]);
}
public static function relations()
{
return [
//
];
}
public static function routes()
{
return [
Pages\ListProductOptions::routeTo('/', 'index'),
Pages\CreateProductOption::routeTo('/create', 'create'),
Pages\EditProductOption::routeTo('/{record}/edit', 'edit'),
];
}
}
from filament.
Fixed by #250.
from filament.
Related Issues (20)
- Placeholder Content Not Updating HOT 1
- BulkAction Storage download not working for table in livewire component HOT 1
- Can't change page on a table HOT 10
- ![columnmapping](https://github.com/filamentphp/filament/assets/69535487/9a6fb3f9-dd31-444d-9c60-61969f804b32) HOT 2
- Bug in query builder on polymorphic relation HOT 1
- Import not Mapping the result HOT 2
- TypeError with Closure Parameter in `ClassAction` URL Definition with `assertTableActionHasUrl` Assertion HOT 11
- why formatStateUsing doesn't work in some cases? HOT 1
- formatStateUsing doesn't work HOT 1
- formatStateUsing doesn't work HOT 4
- Generating a slug from a title afterStateUpdated $set() HOT 2
- Using the builder and removing a block in code does not remove the content from the Record on subsequent save. HOT 5
- Database Notifications is not displayed correctly due to the ListPage parameter page=2 when the `$isPaginated` option is active HOT 3
- hiddenOn() and disabledOn() not working HOT 1
- Error when calling preserveFilenames function in Class Forms\Components\FileUpload HOT 1
- Modal Cancel Action Triggering on modal open not when it closes HOT 1
- Disabling 'attachFiles' does not prevent files from being attached (MarkdownEditor/RichEditor) HOT 1
- Relation manager action modal content page issue HOT 2
- Can't have medialibrary fields in two fieldsets for the same relationship in the same form HOT 4
- Summarizers\Sum Unable to count BelongsToMany intermediate table fields correctly HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from filament.