Страница доступна после отправки сообщения - PullRequest
0 голосов
/ 11 июля 2020

У меня есть контактная форма, и я создал страницу для отображения, когда сообщение отправлено, но я хочу, чтобы эта страница была доступна только тогда, когда сообщение отправлено. Возможно ли это?

Вот строки из ContactFormController

public function store()
{
    $data = request()->validate([
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required',

    ]);

    Mail::to('test@test.com')->send(new ContactFormMail($data));

    return redirect('contact.recieved');
}

Потому что, когда я go перехожу на страницу contact.recced, она открывается, я хочу, чтобы она открывалась только в том случае, если сообщение отправлено.

Вот строки из Интернета. php файл

Route::get('contact', 'ContactFormController@create')->name('contact.create');
Route::post('contact', 'ContactFormController@store')->name('contact.store');
Route::view('message-recieved', 'contact.recieved');

Вот страница контакта. получено

<body style="background: lightgrey;">
<div class="centered text-success ">
    <h1>Message Recieved! :)</h1>
    <hr>
    <p>Thank you for your message. I'll be in touch.</p>
</div>
<div class="p-4">
    <a class="a-links p-2 border border-success rounded-sm" href="{{url('/')}}">
        <i class="fa fa-angle-left text-success"> <span> Go Back</span></i>
    </a>
</div>
</body>

Ответы [ 2 ]

0 голосов
/ 11 июля 2020

Я добавил следующий код на страницу contact.recieve, и он сработал.

@if (session()->has('message'))

<body style="background: lightgrey;">
<div class="centered text-success ">
    <h1>Message Recieved! :)</h1>
    <hr>
    <p>{{ session()->get('message')}} </p>
</div>
<div class="p-4">
    <a class="a-links p-2 border border-success rounded-sm" href="{{url('/')}}">
        <i class="fa fa-angle-left text-success"> <span> Go Back</span></i>
    </a>
</div>
</body>
@else
<body class="notFound">
    <div class="flex-center position-ref full-height">
        <div class="code not-found text-capitalize">404</div>

        <div class="message not-found text-capitalize" style="padding: 10px;">Not `Found</div>`
    </div>
</body>
@endif
0 голосов
/ 11 июля 2020

Для этого вы можете использовать блок try следующим образом:

public function store()
{
    $data = request()->validate([
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required',
    ]);

    try { 

      Mail::to('test@test.com')->send(new ContactFormMail($data));

    } catch (\Swift_TransportException $e){
        return "Cant send email"; // Return this, if not send
    }
    return redirect('contact.recieved'); // Return this, if send successfully
}
...