Включение формы регистрации в основном макете - PullRequest
0 голосов
/ 03 ноября 2019

Я хотел бы поместить свою регистрационную форму в нижний колонтитул моего приложения Laravel, чтобы она отображалась на всех страницах нижнего колонтитула. Я понятия не имею об этом. Был бы признателен за базовые примеры кодов для контроллера и формы. ФОРМА КОНТАКТА

                    <input type="text" name="email" placeholder="Email" value="{{old('email') }}">
                    <span class="errors">{{ $errors->first('email') }} </span>

                  @csrf
                  <span class="subscribe-button"><input type="submit" value="subscribe" /></span>
             </form>
        </div>

SubscribeController.php

      <?php

       namespace App\Http\Controllers;

       use App\Mail\SubscribeMail;
       use Illuminate\Http\Request;
       use Illuminate\Support\Facades\Mail

       class SubscribeController extends Controller
        {
         public function create()
          {
          return view('contact.subscribe');
          }


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

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

         return redirect('');
       }

Бой подписки внутри моего нижнего колонтитула, используя @include ('contact.subscribe')

1 Ответ

0 голосов
/ 04 ноября 2019

Вы на правильном пути, так держать! Тем не менее, у вас есть некоторые проблемы внутри функции магазина:

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

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

         return redirect()->route('home');
}

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

<!-- Stored in resources/views/layouts/app.blade.php -->
<html>
    <head>
        <title>App Name - @yield('title')</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
        <footer>
          <p>Amazing footer with the sign-up form</p>
          <form>
            <!-- Inputs -->
          </form>
        </footer>
    </body>
</html>

После этого вы можете создать любое количество страниц, которое должно расширить ваш основной макет.

<!-- Stored in resources/pages/home.blade.php -->
@extends('layouts.app')

@section('title', 'Home Page')

@section('content')
    <p>This is my Home page.</p>
@endsection

Подробнее об этомпо официальной документации Laravel - https://laravel.com/docs/6.x/blade#defining-a-layout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...