У меня есть 2 разных файла макета, которые я хочу расширить.
app.blade.php
— основной макет:
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<!-- Meta -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>@yield('title') | {{ config('app.name') }}</title>
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('laraback/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('laraback/css/fontawesome.min.css') }}">
<link rel="stylesheet" href="{{ asset('laraback/css/datatables.min.css') }}">
</head>
<body>
@yield('content')
<!-- Scripts -->
<script src="{{ asset('laraback/js/jquery.min.js') }}"></script>
<script src="{{ asset('laraback/js/popper.min.js') }}"></script>
<script src="{{ asset('laraback/js/bootstrap.min.js') }}"></script>
@stack('scripts')
</body>
</html>
form.blade.php
- это дочерний макет, который я хочу использовать:
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-6">
<div class="card">
<div class="card-body">
@yield('content')
</div>
</div>
</div>
</div>
</div>
Вот мой код формы:
@section('content')
<form method="POST" action="{{ route('login') }}" novalidate>
{{ csrf_field() }}
<div class="form-group">
<label for="email">Email</label>
<input type="email" name="email" id="email" class="form-control">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" name="password" id="password" class="form-control">
</div>
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" name="remember" class="form-check-input">
Remember
</label>
</div>
<button type="submit" class="btn btn-primary">Login</button>
<a class="btn btn-link" href="{{ route('password.email') }}">Forgot Your Password?</a>
</form>
@endsection
Я знаю, что могу использовать @extends('layouts.app')
для получения формы в основном макете, но как мне сделать так, чтобы я мог расширить form.blade.php
внутри app.blade.php
? (Я знаю, это звучит запутанно).
Это пример результата, который я хочу:
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<!-- Meta -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>@yield('title') | {{ config('app.name') }}</title>
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('laraback/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset('laraback/css/fontawesome.min.css') }}">
<link rel="stylesheet" href="{{ asset('laraback/css/datatables.min.css') }}">
</head>
<body>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-6">
<div class="card">
<div class="card-body">
<form method="POST" action="{{ route('login') }}" novalidate>
{{ csrf_field() }}
<div class="form-group">
<label for="email">Email</label>
<input type="email" name="email" id="email" class="form-control">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" name="password" id="password" class="form-control">
</div>
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" name="remember" class="form-check-input">
Remember
</label>
</div>
<button type="submit" class="btn btn-primary">Login</button>
<a class="btn btn-link" href="{{ route('password.email') }}">Forgot Your Password?</a>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- Scripts -->
<script src="{{ asset('laraback/js/jquery.min.js') }}"></script>
<script src="{{ asset('laraback/js/popper.min.js') }}"></script>
<script src="{{ asset('laraback/js/bootstrap.min.js') }}"></script>
@stack('scripts')
</body>
</html>