Laravelでメール送信機能を実装しています。
その中でLINEにも同時に通知をしたいと言うことになりました。
実装は以下です。
Mail/MailRequest.php
PHP
1<?php 2 3namespace App\Mail; 4 5use App\Services\LineService; 6use App\User; 7use Illuminate\Bus\Queueable; 8use Illuminate\Contracts\Queue\ShouldQueue; 9use Illuminate\Mail\Mailable; 10use Illuminate\Queue\SerializesModels; 11 12class Request extends Mailable 13{ 14 use Queueable, SerializesModels; 15 16 /** 17 * @var User 18 */ 19 private $user; 20 /** 21 * @var LineService 22 */ 23 private $line; 24 25 /** 26 * Create a new message instance. 27 * 28 * @param User $user 29 */ 30 public function __construct(User $user) 31 { 32 $this->user = $user; 33 $this->line = new LineService(); 34 } 35 36 /** 37 * Build the message. 38 * 39 * @return $this 40 */ 41 public function build() 42 { 43 $title = 'XXX'; 44 $text = file_get_contents(resource_path('views/emails/request.blade.php')); 45 $url = route('reservation.index'); 46 47 $this->line->sendMessage( 48 $this->user->line_token, 49 $title . "\n" . $text 50 ); 51 52 return $this 53 ->subject('【ikimasu】' . $title) 54 ->text('emails.request', [ 55 'user' => $this->user, 56 'url' => $url 57 ]); 58 } 59} 60
views/emails/request.blade.php
PHP
1XXX運営事務局です。 2 3リクエストを受け付けました。 4{{ $url }} 5 6宜しくお願いいたします。 7 8 9【お問い合わせ先】 10{{ config('services.support.name') }} 11Email:{{ config('services.support.email') }} 12
$this->line->sendMessage
この部分でtextを渡しているのですが、templateの変数もそのまま挿入されていまいます。(当たり前なのですが。)
そこで file_get_contents をしたテキストに対して適切に表示される処理を行いたいのですが、可能でしょうか。
もしご存知の方がいらっしゃいましたら教えていただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー