我是Filament的新手,正在创建一个允许用户输入主题、语言和语气的表单。我正在使用OpenAI API根据这些输入生成专业电子邮件。
下面的代码成功地打开了一个供用户输入此信息的模式,EmailGenerationService()类返回了一个包含电子邮件标题和内容的JSON对象。到目前为止,一切都运行得很顺利。
现在,在操作完成后,我想打开另一个模态来显示生成的电子邮件。但是我不能完成它。下面是我的代码
Action::make('writeEmail')
->form([
TextInput::make('mail_subject'),
Select::make('mail_language')
->enum(MailLanguages::class)
->options(MailLanguages::class),
Select::make('mail_tone')
->enum(MailTones::class)
->options(MailTones::class),
])
->action(function (array $data) {
$prompt = 'Subject: '.$data['mail_subject'].'. Language: '.$data['mail_language']->value.'. Tone: '.$data['mail_tone']->value;
$service = new EmailGenerationService($prompt, 2000);
$mail['title'] = $service->title;
$mail['content'] = $service->content;
//here I want to add a code to open a new modal to show results
})
->modalAlignment(Alignment::Center)
->closeModalByClickingAway(false);
字符串
1条答案
按热度按时间bq9c1y661#
为了在完成动作后打开另一个模态,你可以使用Filament中的
Modal
类来创建一个新的模态,然后将其作为动作的一部分返回。下面是一个如何修改代码来实现这一点的例子:字符串
在此示例中,
your-view-path
应替换为将呈现生成的电子邮件的Blade视图文件的实际路径。请确保创建相应的Blade视图文件,该文件接收$mail
变量并显示电子邮件标题和内容。此模式将在操作完成后打开。