راکت

ارسال ایمیل در لاراول

3 پاسخ

سلام دوستان من یه فرم تماس با ما دارم که میخوام وقتی کاربر فرم رو پر کرد محتوا فرم ارسال شه به ایمیل خودم
تا الان کارایی که کردم اینهاست:
با mailtrap فایل mail تو config رو ویرایش کردم
یک فرم درست کردم که نوع اش post هست و اطلاعات رو به به روت ارسال میکنه:

Route::post('/contact-us', [HomeController::class, 'ContactEmail'])->name('ContactEmail');

این همون کلاس ارسال ایمیلی که ساختم:

<?php

namespace App\Mail;

use http\Client\Request;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class ContactUs extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public $request;
    public function __construct($request)
    {
        $this->request = $request;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('Mails.contactUs')->subject('پیام از وبسایت kidLand')->with([
            'name' => $request->name,
            'email' => $request->email,
            'text' => $request->text
        ]);
    }
}

این controller ام:

namespace App\Http\Controllers;
//namespace App\Models;
//use App\Models\User;
use App\Mail\ContactUs;
use App\Models\story;
use App\Models\Sub;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Mail\Mailable;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;

public function ContactEmail(Request $request){
        Mail::to('s.a.alavi1313@gmail.com')->send(new ContactUs($request));
    }

خطایی که دارم: Undefined variable $request

ثبت پرسش جدید

پاسخ‌ها

3
سینا شاه‌اویسی
سینا شاه‌اویسی
@sinashahoveisi

تخصص: برنامه نویس

سلام این آموزش میتونه کمکت کنه

بردیا مظاهری
بردیا مظاهری
@l3ardia

تخصص: مهندس نرم افزار

```
public function build()
{
    return $this->view('Mails.contactUs')->subject('پیام از وبسایت kidLand')->with([
        'name' => $this->request->name,
        'email' => $this->request->email,
        'text' => $this->request->text
    ]);
}
```

توی php اگه توی کلاس متغیر تعریف می کنی باید برای دسترسی بهش از $this-> استفاده کنی.

شاید پاسخ شما همین‌جا باشد

علی جمالی
علی جمالی
@alijamali

تخصص: برنامه نویس وب

سلام دوست عزیز
میتونی از تابع request() در لاراول استفاده کنی بجای اینهمه کار

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام