🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۰ مجید صادقی زاده
مشکل برای اجرای دستورات ارسال ایمیل
مهرداد سامی حل شده توسط مهرداد سامی
use App\Servives\Notification\Notification;
use App\User;
use App\Mail\TopicCreated;
Route::get('/', function () {
   $notification = resolve(Notification::class);
   $notification->sendEmail(User::find(1), new TopicCreated);
});

این کد هایی هستش که در فایل web.php نوشتم طبق ویدئوی آموزشی و حتی با نگه داشتن کلید Ctrl و کلیک کردن بر روی کلاس Notification به کلاس مربوطه فرستاده می‌شوم اما در هنگام اجرای برنامه خطای زیر رو نشون میده

ReflectionException (-1)

Class App\Servives\Notification\Notification does not exist

لطفا زاهنمایی بفرمایید که برای چی این اتفاق می‌افته.

با تشکر

کلاس دقیقا توی همون آدرس داده شده ساخته شده این هم کدهاش هست

namespace App\Servives\Notification;
use app\User;
use Illuminate\Support\Facades\Mail;
use Illuminate\Mail\Mailable;
Class Notification {
    public function sendEmail(User $user , Mailable $mailable)
    {
        Mail::to($user)->send($mailable);
    }
}

 

مجید صادقی زاده ۱۲ تیر ۱۳۹۸، ۱۹:۴۴

سلام ... 

از لحاظ نوشتاری و کدی به نظر مشکل خاصی نمیاد، یکبار دستور زیر رو وارد کنید ببینید مشکل حل میشه یا خیر : 

composer dump-autoload

 

مهرداد سامی ۱۳ تیر ۱۳۹۸، ۰۸:۵۹

با سلام آقای سامی خطای زیر رو دارم 

'composer' is not recognized as an internal or external command,
operable program or batch file.
 

کامپوزر نصب هست و توی CMD که می‌نویسم composer نشون میده که نصب هست

 

مجید صادقی زاده ۱۳ تیر ۱۳۹۸، ۰۹:۲۸

آقای سامی مشکل composer dump-autoload رو برطرف کردم 

متغییر‌های سیستم مشکل پیدا کرده بودند.

اون مشکل که داشتم هم برطرف شد :D

مجید صادقی زاده ۱۳ تیر ۱۳۹۸، ۰۹:۵۳

آقا مشکل حل شد مرسی 

محمد حسن زاده ۲۸ بهمن ۱۳۹۸، ۱۲:۳۸

با عرض سلام و خسته نباشید 

دوتا سوال داشتم 

اول اینکه برای ارسال ایمیل در سیستم نوتیفیکشن نیاز به مدل کاربر هست ، چطوری میتونم با داشتن نام و ایمیل کاربر از طریق این سیستم به کاربر میهمان که از طریق صفحه ی ارتباط با ما پیامی فرستاده ، پاسخ ارسال کنم ؟

SendEmail::dispatchNow(User::find($request->user), new $mailable);

 

دوم اینکه برای ارسال ایمیل از mailtrap  استفاده شده تو ویدئوهای آموزشی و برای پیاده سازی بر روی هاست ، لطفا بفرمایید چه تنظیماتی نیاز هست انجام بدم 

یه مطالعاتی کردم اما موفق به پیاده سازی نشدم ، ممنون

مجید صادقی زاده ۲۱ خرداد ۱۳۹۹، ۱۸:۴۷

سلام ... 

در این سیستم میتونید یه مدل یوزر درست کنید و نام و ایمیل اون کاربر رو فقط داخلش نگهداری کنید ولی اون رو در دیتابیس ثبت نکنید ... و زمانی که خواستید بهش ایمیل بزنید اون یوزر رو ارسال کنید به سمت سیستم نوتیفکیشن ... 

شما با دستور make در لاراول میتونید یه نمونه از یک مدل بسازید ولی اون رو ذخیره نکنید ... 

$user = User::make(["email" => "Test@test.com", "name" => "Test"]);
SendEmail::dispatchNow($user, new $mailable);

 

بهترین پاسخ
مهرداد سامی ۲۱ خرداد ۱۳۹۹، ۱۹:۲۰

ممنونم از راهنماییتون ، فقط سوال دومم هم لطفا راهنمایی کنید با تشکر 

مجید صادقی زاده ۲۲ خرداد ۱۳۹۹، ۲۰:۱۳

سلام خسته نباشید ، آیا امکان RTL کردن markdown وجود دارد ؟

با استفاده از view  میخواستم پیامی که کاربر ارسال کرده رو به ویو پاس بدم خطای زیر رو بهم میده

htmlspecialchars() expects parameter 1 to be string, object given 

همون مقادیر رو به markdown پاس میدم بدون مشکل ارسال میشه ، فقط موردی که هست اینه که برای نمایش بهتر باید RTL بشه البته اگه امکانش باشه

مجید صادقی زاده ۲۳ خرداد ۱۳۹۹، ۱۰:۱۲

سلام

لطفا به این فایل زیپ نگاه کنید

تابع SendEmail که تعریف کرده ام در کلاس Notification 

و بعد در web ام namespace ام که وارد کردم

خروجی این ارور را به من می‌دهد

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR)

Argument 1 passed to App\Services\Notifications\Notification::SendEmail() must be an instance of App\User, null given, called in C:\xampp\htdocs\laravel\routes\web.php on line 22

mohammad dadkhah ۰۸ تیر ۱۴۰۰، ۱۰:۵۶