Merhaba ben bir laravel projesi geliştiriyorum.Bir noktada takıldım ve siz bilen arkadaşlara danışmak istiyorum.Kullanıcılar iletişim modal'ı ile sistem mailine mail gönderebiliyor.Her şeyi sorunsuz yapıyorum ama bir noktada takıldım.
Sorun;
Kullanıcılar iletişim formu ile mail göndereceği zaman sistemde kayıtlı KULLANICI ADI VE MAİL olmadan iletişim formu gönderemesin.Yani kullanıcı sisteme giriş yaptığı mail ve kullanıcı adı dışında bir bilgi iletişim formuna yazarsa sistem uyarı vermesini istiyorum.
ContactController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Mail;
use App\Mail\ContactMail;
class ContactController extends Controller
{
public function contact()
{
return view('contact-us');
}
public function sendContact(Request $request)
{
//$details =[
// 'contact_name' => $request->contact_name,
// 'contact_email' => $request->contact_email,
//'contact_message' => $request->contact_message,
//];
$this->validate($request, [
'contact_name' => 'required|string|max:255|min:3|unique:users,name|alpha_dash',
'contact_email' => 'required|string|email:rfc,dns|max:255',
'contact_message' => 'required|string|min:20|max:255'
],[
'contact_name.required' => 'Kullanıcı Adı Boş Olamaz',
'contact_name.unique' => 'Kullanıcı Adı Daha Önce Kayıt Edilmiş.',
'contact_name.max' => 'Kullanıcı Adı 255 Karakterden Uzun Olamaz.',
'contact_name.min' => 'Kullanıcı Adı 3 Karakterden Uzun Olmalıdır.',
'contact_name.alpha_dash' => 'Kullanıcı Adı sadece harfler, rakamlar ve tirelerden oluşmalıdır.',
'contact_email.max' => 'E-mail 255 Karakterden Uzun Olamaz.',
'contact_email.unique' => 'E-mail Daha Önce Kayıt Edilmiş.',
'contact_email.email' => 'Email alanına girilen e-posta adresi geçersiz.',
'contact_message.required' => 'Mesaj kısmı boş olamaz',
'contact_message.max' => 'Kullanıcı Adı 255 Karakterden Uzun Olamaz.',
'contact_message.min' => 'Kullanıcı Adı 20 Karakterden Uzun Olmalıdır.',
]);
$details = [
'contact_name' => $request['contact_name'],
'contact_email' => $request['contact_email'],
'contact_message' => $request['contact_message']
];
Mail::to('sistem@gmail.com')->send(new ContactMail($details));
$request->session()->flash('messagesend','Mesajınız iletildi.En kısa zamanda değerlendirilecektir.');
return redirect('/');
}
}
ContactMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\User;
class ContactMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($details)
{
$this->user = $details;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->subject('Contact Message')->view('emails.ContactMail')
->with([
'contact_message' => $this->user['contact_message'],
'contact_email' => $this->user['contact_email'],
'contact_name' => $this->user['contact_name'],
]);
}
}
ContactMail.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>İletişim Formu</title>
</head>
<body>
<h1>İletişim Mesajı</h1>
<p>İsim: {{$user['contact_name']}}</p>
<p>Email: {{$user['contact_email']}}</p>
<p>Mesaj: {{$user['contact_message']}}</p>
</body>
</html>