Samir
Samir
FFilament
Created by Samir on 12/20/2023 in #❓┊help
Action to a Livewire component not working.
I have created a Livewire component SearchProduct and have added createLeadAction() to same livewire component. But it does not work. Below is the issue: -- Clicking on Create Lead action button on each product, opens modal with no form but only action button name "Create Lead Now". -- When i click on this button, then also nothing happens. In fact, debug shows it never entered body of the code. Attached the component and blade file code. Please help.
8 replies
FFilament
Created by Samir on 12/18/2023 in #❓┊help
Unable to login to panels in Production
I can log in to all my filament panels in my local environment but not on production. And I get no error. Other details: —Three separate Filament panels using separate authentication guards (web, sellers, buyers). — Hosted on a managed VPS in a sub-domain for testing. — All public pages and publicly accessible database content are visible. — All my models (User, Buyer, Seller) are Authenticatable implements FilamentUser — Currently, all these models have the below method for accessing the panel:
public function canAccessPanel(Panel $panel): bool
{
return true;
}
public function canAccessPanel(Panel $panel): bool
{
return true;
}
I didn't implement the current following code because I have users in all panels with different domains. For example, Sellers or Buyers can have their domain emails so that way my emails will be different.
public function canAccessPanel(Panel $panel): bool
{
return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail();
}
public function canAccessPanel(Panel $panel): bool
{
return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail();
}
I have seen it in my database and the record is created. Registration is also happening but I am not able to login in production. Please help.
6 replies
FFilament
Created by Samir on 11/30/2023 in #❓┊help
Endless search issue during Attach action in Eloquent Table
Brief Background: — Admin creates products in Admin Panel. — Seller in Seller Panel can only Attach/Detach products. — I created an Eloquent Relationship Table that shows all products by a Seller in a Filament Custom Page present in the Seller Panel. — Detach action is fine. But the 'Attach' action goes in an endless product search. Please note. — Relationship manager in Admin Panel works well for Attach/Detach. Please help. I am sharing my Filament Custom Page code.
2 replies
FFilament
Created by Samir on 11/27/2023 in #❓┊help
Filament Custom Page always shows admin panel navigation
Filament Custom Page 'ListProductSellers' in my Buyer Panel always shows results with Admin panel sidebar navigation. My expectation is to show results with the Buyer Panel sidebar navigation. This page is not associated with any resource. I am defining its route in web.php.
Route::get('/buyer/{product}/{key}/sellers', ListProductSellers::class)->name('buyer.product.sellers');
Route::get('/buyer/{product}/{key}/sellers', ListProductSellers::class)->name('buyer.product.sellers');
In my ListProductSellers class, I have a table for an Eloquent relationship. I am calling this Custom Page from another livewire component blade file using a filament link.
<x-filament::link :href="route('buyer.product.sellers', ['product' => $product,'key' => $product->id])">
<span class="text-xs font-medium uppercase text-gray-500 dark:text-gray-500"> View Sellers</span>
</x-filament::link>
<x-filament::link :href="route('buyer.product.sellers', ['product' => $product,'key' => $product->id])">
<span class="text-xs font-medium uppercase text-gray-500 dark:text-gray-500"> View Sellers</span>
</x-filament::link>
I have attached my ListProductSeller class code. Please let me know where I am wrong.
22 replies
FFilament
Created by Samir on 11/21/2023 in #❓┊help
How to use Filament Builder and Blocks in Front end
I have created Page model with Page resource. For page content, I used Filament Builder and blocks. I am clueless from here how to use my blocks while creating front end pages. I am able to create list of pages in my page resources.
2 replies
FFilament
Created by Samir on 11/11/2023 in #❓┊help
Attach in relationship manager is Timing out
Admin panel has Product and Seller resources with a many-to-many relationship. Sellers, treated as authenticatable users, can't create products but can select/add from Admin's product list. Admin's relationship manager works well. In Seller Resource, Admin can view/edit a seller and manage their products efficiently. However, attaching products is slow. In the Seller panel, the user can view their products but faces timeouts in attaching due to slow select searches, even with preload implementation. In Seller Panel, I have created a Filament Custom page called Products and add below code in the component. Below is the code. What is wrong.
class Products extends Page implements HasForms, HasTable
{
use InteractsWithTable;
use InteractsWithForms;

protected static string $view = 'filament.seller.pages.products';

public Seller $seller;

public function mount(Seller $seller): void
{
$seller = Filament::auth()->user();
$this->seller = $seller;
}

public function table(Table $table): Table
{
return $table
->relationship(fn (): BelongsToMany => $this->seller->products())
->inverseRelationship('sellers')
->columns([
Tables\Columns\TextColumn::make('name’),

————other table columns ———

])
->headerActions([
Tables\Actions\AttachAction::make()
->preloadRecordSelect(),
])
->actions([
Tables\Actions\DetachAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DetachBulkAction::make(),
]),
]);
}

}
class Products extends Page implements HasForms, HasTable
{
use InteractsWithTable;
use InteractsWithForms;

protected static string $view = 'filament.seller.pages.products';

public Seller $seller;

public function mount(Seller $seller): void
{
$seller = Filament::auth()->user();
$this->seller = $seller;
}

public function table(Table $table): Table
{
return $table
->relationship(fn (): BelongsToMany => $this->seller->products())
->inverseRelationship('sellers')
->columns([
Tables\Columns\TextColumn::make('name’),

————other table columns ———

])
->headerActions([
Tables\Actions\AttachAction::make()
->preloadRecordSelect(),
])
->actions([
Tables\Actions\DetachAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DetachBulkAction::make(),
]),
]);
}

}
I dont get any error while while viewing my record as a Seller in my Seller panel. I can detach if admin panel has added products for me. Please help.
2 replies
FFilament
Created by Samir on 11/8/2023 in #❓┊help
Problem showing array in Infolist using RepeatableEntry
I have Product table with 'syn' field which takes multiple entries. I am using repeater for this in form. Now, I am using View file where I want to see all my 'syn'. I am using below code in Infolist. RepeatableEntry::make('syn')->schema([ TextEntry::make('syn') )]. But it gives me list of empty entries. So if I have 11 entries, then it gives 11 empty blocks. I tried using RepeatableEntry::make('$this->product->syn') or RepeatableEntry::make('$this->product') both gave error. RepeatableEntry::make('syn') does not give error and also lists exact blocks for entries. But why data not populated. Please help. In my migration syn is json type and in Product model I have already cast it array. Form or Table view is great.
17 replies
FFilament
Created by Samir on 11/7/2023 in #❓┊help
Showing N:N relationship in Infolist added to Livewire
I have Product and Brand model which share many to many relationship. I created a SearchProduct livewire component which I am rendering on one public and other Filament Custom Page located in a Buyer Panel. I need to show all brands associated with a Product in a InfoList added to my Livewire component. I have pivot table and belongsToMany relationship defined in both models. Here is my Livewire code for Infolist. public function productInfolist(Infolist $infolist): Infolist { return $infolist ->record($this->product) ->schema([ TextEntry::make('name'), TextEntry::make('description'), Tabs::make('Label') ->tabs([ Tabs\Tab::make('Synonyms') ->schema([ TextEntry::make('syn') ->listWithLineBreaks(), ]), Tabs\Tab::make('Brands') ->schema([ TextEntry::make($this->product->brands) ->listWithLineBreaks(), ]), ]), ]); }
9 replies