keyboard_return  چسبون مقالات آموزشی فرم تماس با ما در لاراول
  1. فرم تماس با ما در لاراول

ساخت فرم تماس با ما در لاراول- Laravel Contact-us form

سلام دوستان تو این آموزش قصد داریم نحوه ساخت فرم تماس با ما در لاراول رو آموزش بدیم. در صورتیکه قسمت مربوط به فرم در لاراول را مشاهده نکردید لطفا اینجا کلیک کنید.

Laravel Contact Form

قبل از هر کاری ابتدا باید صفحه مربوط به فرم تماس را طراحی کنیم: خب یک فایل balde با نام contact.blade.php در مسیر resource/view بسازید و دستورات زیر را در آن کپی کنید:

<html>

<body>
    <h1>قرم تماس با ما در لاراول</h1>
    <p>کاربر گرامی جهت ارتباط با ما می توانید از فرم زیر استفاده کنید</p> {{ Form::open(array('url' => 'contact')) }}
    {{ Form::label('name') }} 
    {{ Form::text('name', 'Enter Your Name') }}
    <br> {{ Form::label('email') }} 
    {{ Form::text('name', 'Enter Your E-Mail address') }}
    <br> {{ Form::label('subject') }} 
    {{ Form::text('subject', 'Enter subject') }}
    <br> {{ Form::label('message') }} 
    {{ Form::textarea('message', 'Enter your message') }}
    <br> {{ Form::submit('Send Message') }} 
{{ Form::close() }} 

{{ Html::ul($errors -> all(), array('class' => 'errors')) }}

</body>
</html>

توضیحات مربوط در جلسه قبلی آموزش فرم در لاراول داده شده همچنین جهت نمایش پیغام های خطای احتمالی در فرم، از تگ ul استفاده کردیم. خب تا اینجا ما صفحه مربوط به دریافت اطلاعات تماس را طراحی کردیم حال وارد فایل route.php شده و مسیر های لازم را در آن تعریف می کنیم:

Route::get('contact', function() {
    return view('contact');
});

این تابع نمایش فرم تماس با ما را میسر می سازد یعنی زمانیکه کاربر در مرورگر خود آدرس صفحه contact را وارد کند فرم طراحی شده نمایش داده خواهد شد. حال باید تابع مربوط به ارسال اطلاعات و پردازش فرم را نیز تعریف کنیم

Route::post('contact', function() {
    $rulls = array('name' => 'required',
                   'email' => 'required|email',
                   'subject' => 'required',
                   'message' => 'required');
  
    $validator = Validator::make(Input::all(), $rulls);
  
    if ($validator - > fails()) {
        return Redirect::to('contact') - > withErrors($validator) - > withInput();
    }
  
    return 'your message has been send';
});

در صورتی که عمل submit در فرم اتفاق بیافتد تابع post فراخوانی می شود. چنانچه هر یک از کادر های مربوط به نام، موضوع و پیام خالی باشد باید پیغام خطای مناسب نمایش داده شود و در صورتیکه همه فیلدها مقدار دهی شده بود پیغامی مبنی بر ارسال موفقیت آمیز پیام نمایش داده شود. به منظور اعتبار سنجی فیلدها از دستور Validator استفاده کردیم قوانین مربوط به اعتبار سنجی نیز در متغیر rules تعریف شده اند. در انتها نیز با استفاده از دستور شرطی بررسی کردیم اگر خطایی رخ داده بود کاربر مجددا به صفحه تماس هدایت شده و پیغام های خطا را نیز به صفحه pass کردیم. در این مرحله لازم است تا تنظیمات مربوط به ارسال ایمیل را در فایل mail.php موجود در پوشه config برررسی کنید. ما در این آموزش از mail استفاده کردیم. البته ممکن است شما روش دیگری را انتخاب کنید! وارد فایل mail.php شده و driver را روی mail تنظیم کنید:

'driver' => env('MAIL_DRIVER', 'mail'),

حال نوبت به طراحی یک قالب برای ارسال محتویات به ایمیل گیرنده می رسد. یک فایل با نام template.blade.php در مسیر resource/view بسازید.

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Email</title>
</head>

<body>
    <h2>Your Message:</h2>
    <div>
        <p>name: {{ $name }}</p>
        <p>Sender: {{ $email }}</p>
        <p>Subject: {{ $subject }}</p>
        <p>Message: {{ $message }}</p>
    </div>
</body>

</html>

توجه داشته باشید که این فایل به عنوان ایمیل برای کاربر ارسال خواهد شد. بنابر این می توانید متن دلخواه، لوگوی سایت و یا پیام های تبریک مورد نظر خود را نیز در آن قرار دهید. در این مثال ما از متغیر های name, $email, $subject, $message$ جهت نمایش اطلاعاتی که کاربر در فرم وارد کرده استفاده کردیم. کافیست تا مقادیر مورد نظر را به این صفحه ارسال کنیم تا موقع پردازش با مقدار متغیرها جایگزین شوند. حالا به سراغ تابع مربوط به ارسال ایمیل می رویم کد زیر را در ادامه دستورات وارد شده در تابع POST موجود در فایل route.php وارد می کنیم.

$data = array('name' => Input::get('name'),
              'email' => Input::get('email'),
              'subject' => Input::get('subject'),
              'message' => Input::get('message'));

$status = Mail::send('email', $data, function($message) {
    $message - > from('[email protected]', 'Laravel');
    $message - > to('[email protected]') - > subject('Users Message');
});

return $status;

دقت کنید از تابع Mail جهت ارسال ایمیل استفاده کردیم. پارامتر اول نام فایل قالب ما می باشد (email.blade.php) پارامتر دوم مقادیری است که باید به صفحه ارسال کنیم از این متغیرها در صفحه قالب استفاده کردیم و در انتها نیز مقادیر مربوط به آدرس ایمیل ارسال کننده و دریافت کننده پیام را تنظیم کردیم. همچنین از یک متغیر با نام status$ جهت نمایش وضعیت ارسال پیام استفاده کردیم. در صورتیکه بنا به هر دلیلی خطایی رخ دهد این پیغام در خروجی صفحه ظاهر خواهد شد و در غیر اینصورت نیز پیغام مناسب مبنی بر ارسال پیام صادر خواهد شد. از اینکه این آموزش را تا انتها مطالعه کردید متشکرم و امیدوارم از این آموزش خوشتون اومده باشه. در صورتیکه سوالی داشتید می تونید با ما در میان بگذارید.

فرم تماس با ما در لاراول - 4.2 از 5 بر اساس 150 رای

امتیاز کاربران

فرم تماس با ما در لاراول
دیدگاه‌ها

دیدگاهی وجود ندارد

2024 © Copyright کليه حقوق مادی و معنوی براي چسبون محفوظ است و هرگونه کپی برداری پیگرد قانونی دارد.