Расширение макета внутри условного @if вызывает дублирование макета - PullRequest
0 голосов
/ 15 марта 2019

Я работаю над Laravel 5.5. Я проверяю, вошел ли пользователь в систему так:

@if(Auth::check())
//some logic

@else
//somelogic

@endif

Но оператор if / else выполняется дважды в зависимости от того, вошел ли пользователь в систему или нет. Почему вы думаете, что это происходит? Я пробовал другие способы проверки подлинности, как указано здесь . Тем не менее я получаю ту же ошибку.

Используемый мной макет.

<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
   <meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial- 
    scale=1">

    <title>{{ config('app.name', '') }}</title>  

   <!-- Styles -->
   <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">

    @include('inc.navbar')
      <div class="container">
     @yield('content')
  </div>
  </div>

   <!-- Scripts -->
  <script src="{{ asset('js/app.js') }}"></script>
</body>
</html>

Логика для реализации

@if(Auth::user())
@extends('layouts.app')

@section('content')
  <h1> Exercises</h1>
@endsection
 @else
  @extends('layouts.app')

  @section('content')
  <h1> Nope</h1>
 @endsection
@endif

Ответы [ 3 ]

2 голосов
/ 15 марта 2019

Вы можете попробовать это

@if(Auth::user())

// User is logged

@else

//User is not logged

@endif

Надеюсь, это будет полезно

0 голосов
/ 15 марта 2019

Измените свою страницу следующим образом. @extends не следует вызывать дважды.

@extends('layouts.app')
  @section('content')
    @if(Auth::user())
      <h1> Exercises</h1>
    @else
      <h1> Nope</h1>
    @endif
  @endsection

Вы также можете использовать троичный оператор, если вы хотите разные макеты для расширения:

@extends(Auth::check() ? 'layouts.app' : 'layouts.app2')
0 голосов
/ 15 марта 2019

В Laravel 5.5 вы можете использовать что-то подобное

@auth
   // logged in
@else
  // not logged in
@endif

Также вы можете проверить гостевого пользователя

@guest
  // guest user 
@endguest

Для получения дополнительной информации прочитайте Директивы аутентификации

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