首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有用户名的Laravel通知

带有用户名的Laravel通知
EN

Stack Overflow用户
提问于 2018-10-25 02:47:13
回答 2查看 794关注 0票数 0

我有个小问题。当用户在平台上创建自己的公司时,他们会收到电子邮件通知。通知正在进行,我想将用户名放在消息的正文中,我该怎么做?

控制器公司

代码语言:javascript
复制
public function store(CompanyRequest $request)
{
    $dataForm = $request->all();
    $dataForm['user_id'] = auth()->user()->id;

    // Upload de imagem do S3
    if ($request->hasFile('photo_url')) {
        $file = $request->file('photo_url');
        $name = $file->getClientOriginalName();

        $filepath = 'company/photo_url/' . $name;
        Storage::disk('s3')->put($filepath, file_get_contents($file), 'public');
        $url = Storage::disk('s3')->url($filepath);

        $dataForm['photo_url'] = $url;
    }

    $company = $this->company->create($dataForm);

    // Conveniando o empresa criada para o usuário que está logado
    $user = User::with('company')->find(auth()->user()->id);
    $user->update(['company_id' => $company->id,]);

    // Notifica o usuário quando ele cria a Empresa
    try{
        $user->notify(new CreateNewCompany());
    }
    catch (\Error $error) {
        $company->delete();
        return response()->json(['message' => 'Não foi possivel notificar o Usuário']);
    }


    // Testa a empresa foi criada ou não.
    if (!$company) {
        return response()->json(['message' => 'Não foi possível cadastrar a Empresa']);
    }
    return response()->json(['user' => $user], 201);
}

通知-> CreateNewCompany

代码语言:javascript
复制
 public function toMail($notifiable)
{

    return (new MailMessage)
        ->subject('Sua empresa foi criada!')
        ->greeting('Olá, { $user }')
        ->line('Obrigado por se cadastrar. Sua conta já está ativa!')
        ->line('Obrigado por usar nossa plataforma!');
}

Olá,{ $user } Obrigado por se cadastrar.Sua conta jáestáAtiva!

这是我们的平台!你好,Laravel

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-25 03:16:28

在本例中,您的用户是传递给toMail方法的$notifiable对象,因此您可以像这样访问该用户:

代码语言:javascript
复制
public function toMail($notifiable)
{

return (new MailMessage)
    ->subject('Sua empresa foi criada!')
    ->greeting('Olá, '.$notifiable->name )
    ->line('Obrigado por se cadastrar. Sua conta já está ativa!')
    ->line('Obrigado por usar nossa plataforma!');
}

->name是users表中包含用户名的字段。

票数 3
EN

Stack Overflow用户

发布于 2018-10-25 03:31:11

我就是这么做的,而且成功了。

代码语言:javascript
复制
// Class Notify
private $user;
/**
 * Create a new notification instance.
 *
 * @return void
 */
public function __construct($user)
{
    $this->user = $user;
}


//metho mail() Notify
->greeting('Olá, ' . $this->user->name)



 //Controller
  $user->notify(new CreateNewCompany($user));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52976012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档