我使用的是Filament 3.2.如何在现场更新占位符内容?

Select::make('authors')
    ->relationship('authors', 'name')
    ->live()
    ->afterStateUpdated(function (string $operation, $state, Forms\Set $set, Forms\Get $get) {

    $user = User::find($state[0]);
    if ($user) {
        $userEmail = $user->email;
        $set('authoremail', $userEmail);
    }
    }),

// TextInput::make('authoremail')
//     ->label("Author's Email")
//     ->disabled(),

Placeholder::make('authoremail')

如果它是TextInput,它工作.但它在Placeholder上不起作用.如何让它在Placeholder上工作?

推荐答案

https://filamentphp.com/docs/3.x/forms/layout/placeholder#dynamically-generating-placeholder-content

通过向content()方法传递闭包,您可以动态生成占位符内容.[...]

use Filament\Forms\Components\Placeholder;
use Filament\Forms\Get;
 
Placeholder::make('total')
    ->content(function (Get $get): string {
        return '€' . number_format($get('cost') * $get('quantity'), 2);
    })

所以当将它应用到代码中时,我会try 这样做:

Select::make('authors')
    ->relationship('authors', 'name')
    ->live(),

Placeholder::make('authoremail')
    ->content(function (Get $get): ?string {
        $user = User::find($get('authors')[0] ?? null);

        return $user?->email;
    }),

Laravel相关问答推荐

Laravel将变量从模板到已发布的供应商模板

通过 laravel 中的 url 传递多个字符串作为参数以从数据库中删除特定数据

Laravel 5.3:语法错误或访问冲突:1463 HAVING 子句中使用了非分组字段距离

Laravel Blade - 产生内部部分

如何在 Laravel 中使用内存数据库的完整测试套件之前迁移和 seeder ?

Laravel 表 * 没有名为 * 的列

使用'with'时,Laravel belongsTo 返回 null

你如何在自定义 Laravel Nova 工具中使用确认对话?

如何利用 StorageFacade 的 Filesystem 类的 glob 方法?

如何使用中间件将标头添加到响应中?

将图标添加到 Laravelcollective 提交按钮

约定表名(带下划线)

Laravel Eloquent 模型中的字段

防止 Eloquent 查询上的模型水合

Laravel 字符串验证以允许空字符串

laravel 5.1 在没有 VM 重启的情况下看不到作业(job)文件的更改

Laravel 4:将什么作为参数传递给 Url 类?

如何获取 Laravel 块的返回值?

Laravel 4:分析器在哪里?

有没有办法让表名自动添加到 Eloquent 查询方法中?