Невозможно использовать черту PHP внутри модели laravel - PullRequest
2 голосов
/ 21 февраля 2020

У меня есть черта, которую я использую для отправки писем с помощью mailgun PHP sdk. При попытке отправить почту я получаю следующую ошибку:

 Trait 'App\Models\sendMailgunSdkApi' not found

Это моя модель со скидкой, в которой я использую черта внутри метода sendDiscountMail1,

<?php
namespace App\Models;


use Illuminate\Database\Eloquent\Model;
use App\Models\DiscountCode;
use App\Models\Order;
use Carbon\Carbon;
use App\Models\Scopes\Discounts;
use Mailgun\Mailgun;
use App\Traits\SendMail;


class Discount extends Model
{


    use Discounts, sendMailgunSdkApi;

      public static function sendMail1($order)
    {

        $mailData = 
        [
            'order' => $order
        ];

        $mail = $this->sendMailgunSdkApi('emails.discounts.discount-mail-1', $mailData, 'Disfruta de tu nuevo descuento en '.config('app.name').'.', 'gabogabans@gmail.com');

        return response()->json([
            'mail' => $mail,
        ]);
    }


}

Почему он пытается найти черту в папке моих моделей?

Моя черта на всякий случай:

<?php
namespace App\Traits;


trait SendMail
{


    public function sendMailgunSdkApi($view, $mailData, $subject, $to)
    {
        $html = view($view, compact('mailData'))->render();

        $result = app(Mailgun::class)->messages()->send(config('mail.mailgun.domain'), [
            'from' => config('mail.from.name').' <'.config('mail.from.address').'>',
            'to' => $to,
            'subject' => $subject,
            'html' => $html,
        ]);

        return $result;
    }




}

1 Ответ

4 голосов
/ 21 февраля 2020

use SendMail в качестве признака, а затем вызвать sendMailgunSdkApi функцию

use App\Traits\SendMail;

class Discount extends Model
{
    use Discounts,SendMail;

    public static function sendMail1($order)
    {

        $mailData = 
        [
            'order' => $order
        ];

        $mail = $this->sendMailgunSdkApi('emails.discounts.discount-mail-1', $mailData, 'Disfruta de tu nuevo descuento en '.config('app.name').'.', 'gabogabans@gmail.com');

        return response()->json([
            'mail' => $mail,
        ]);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...