Laravel: после добавления make:auth возникает ошибка на моей странице входа/регистрации

Я сделал новостной сайт laravel. я пытался добавить авторизацию, выполнив make:auth, но когда я нажимаю кнопку входа или регистрации, это дает мне такую ​​​​ошибку:

Laravel: после добавления make:auth возникает ошибка на моей странице входа/регистрации

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

app.blade.php

<html lang = "{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset = "utf-8">
    <meta name = "viewport" content = "width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name = "csrf-token" content = "{{ csrf_token() }}">

    <link rel = "stylesheet" href = "{{asset('css/app.css')}}">
    <link rel = "stylesheet" href = "{{asset('css/custom.css')}}">
    <link href = "https://fonts.googleapis.com/css?family=Montserrat" rel = "stylesheet">
    <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>        
    <link href = "//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel = "stylesheet" id = "bootstrap-css">

<link rel = "stylesheet" href = "https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity = "sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin = "anonymous">
    <title>{{config('app.name', 'News')}}</title>

</head>
<body>
    @include('inc.navbar')
    @include('inc.messages')
    @yield('content')
    @include('inc.footer')
</body>

navbar.blade.php

<header>
    <div class = "container-fluid">
        <div class = "row headercontent">
            <div class = "col-md-3 offset-md-1 borderbottom">

            </div>
            <div class = "col-md-4 borderbottom header-logo  bg-white">
                <a href = "{{url('/')}}"><img class = "high-pic"
                                            src = "https://upload.wikimedia.org/wikipedia/commons/7/77/The_New_York_Times_logo.png"
                                            style = "width: 100%;"></a>
            </div>

            <div class = "col-md-3 search">
                <span class = "fas fa-search"></span>
                <input type = "text" class = "borderbottom backgroundtextinput"
                       style = "position:absolute; bottom:0; width:80%;outline:none;">

            </div>

        </div>
        <div class = "row logo-NY">
            <div class = "col-md-6 offset-md-3 borderbottom header-logo bg-white">
                <div style = "z-index:3000;"></div>
                <a href = "{{url('/')}}"><img class = "high-pic"
                                            src = "https://upload.wikimedia.org/wikipedia/commons/7/77/The_New_York_Times_logo.png"
                                            style = "width: 100%;"></a>
            </div>
            <div class = "col-md-3">
                <div id = "clickme" class = "d-lg-none">
                    <i class = "fas fa-arrow-down"></i>
                </div>
            </div>
            <div class = "col-md-3">

            </div>
        </div>
    </div>

    <div class = "desktop-nav">
        <nav class = "navbar navbar-expand-lg navbar-light font">

            <div class = "container">

                <div class = "" id = "navbarSupportedContent" style = "margin:auto;">
                    <div class = "navbar-flex fontcolorblack">
                        @foreach($categories_navbar as $item)
                            <div class = "nav-item">
                                <a class = "nav-link bold" href = "{{url($item->naam)}}">{{ucfirst($item->naam)}}</a>
                            </div>
                        @endforeach
                        @guest
                        <li class = "nav-item">
                            <a class = "nav-link" href = "{{ route('login') }}">{{ __('Login') }}</a>
                        </li>
                        @if (Route::has('register'))
                            <li class = "nav-item">
                                <a class = "nav-link" href = "{{ route('register') }}">{{ __('Register') }}</a>
                            </li>
                        @endif
                    @else
                        <li class = "nav-item dropdown">
                            <a id = "navbarDropdown" class = "nav-link dropdown-toggle" href = "#" role = "button" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" v-pre>
                                {{ Auth::user()->name }} <span class = "caret"></span>
                            </a>

                            <div class = "dropdown-menu dropdown-menu-right" aria-labelledby = "navbarDropdown">
                                <a class = "dropdown-item" href = "{{ route('logout') }}"
                                   onclick = "event.preventDefault();
                                                 document.getElementById('logout-form').submit();">
                                    {{ __('Logout') }}
                                </a>

                                <form id = "logout-form" action = "{{ route('logout') }}" method = "POST" style = "display: none;">
                                    @csrf
                                </form>
                            </div>
                        </li>
                    @endguest
                    </div>

                </div>
            </div>
        </nav>
    </div>

    <div id = "mobile-nav" style = "width: 100%; display: none; background-color: #2e3192; color: #fff;">
        <div id = "closeme" class = "d-lg-none">
            <i class = "fas fa-times fa-2x"></i>
        </div>
        <nav class = "navbar navbar-light bg-light fixed-top d-lg-none" style = "z-index:999;">
            <ul class = "navbar-nav mr-auto">
                <a href = "{{url('/')}}"><img class = "high-pic"
                     src = "https://upload.wikimedia.org/wikipedia/commons/7/77/The_New_York_Times_logo.png"
                     style = "width: 100%;"></a>
                @foreach($categories_navbar as $item)
                    <div class = "nav-item">
                        <a class = "nav-link bold" href = "{{url($item->naam)}}">{{ucfirst($item->naam)}}</a>
                    </div>
                @endforeach

                <form class = "form-inline my-2 my-lg-0" id = "search_mobile" action = "search" method = "get">
                    <input class = "form-control mr-sm-2" name = "search" type = "search" placeholder = "Search..."
                           aria-label = "Search">
                </form>

                @guest
                        <li class = "nav-item">
                            <a class = "nav-link" href = "{{ route('login') }}">{{ __('Login') }}</a>
                        </li>
                        @if (Route::has('register'))
                            <li class = "nav-item">
                                <a class = "nav-link" href = "{{ route('register') }}">{{ __('Register') }}</a>
                            </li>
                        @endif
                    @else
                        <li class = "nav-item dropdown">
                            <a id = "navbarDropdown" class = "nav-link dropdown-toggle" href = "#" role = "button" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" v-pre>
                                {{ Auth::user()->name }} <span class = "caret"></span>
                            </a>

                            <div class = "dropdown-menu dropdown-menu-right" aria-labelledby = "navbarDropdown">
                                <a class = "dropdown-item" href = "{{ route('logout') }}"
                                   onclick = "event.preventDefault();
                                                 document.getElementById('logout-form').submit();">
                                    {{ __('Logout') }}
                                </a>

                                <form id = "logout-form" action = "{{ route('logout') }}" method = "POST" style = "display: none;">
                                    @csrf
                                </form>
                            </div>
                        </li>
                    @endguest
            </ul>
        </nav>
    </div>

</header>

Вы вносили какие-либо изменения в файлы аутентификации?

Prathamesh Doke 01.03.2019 10:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
530
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Мне кажется, что проблема на самом деле в строке выше.

$category = Categorie::where('naam',$category)->first();

Эта строка не возвращает никаких данных. Попробуйте поставить dd($category) после этой строки, чтобы проверить, действительно ли существует категория с вашим запросом.

спасибо за ответ, кстати, он возвращает «ноль». ты хоть представляешь, где я должен искать, что изменить?

JohnSmith2521 01.03.2019 10:41

Вам нужно проверить параметр запроса и маршрут

Jesus Erwin Suarez 01.03.2019 10:43

Есть 2 переменные с одинаковым именем ($category). Один передается как переменная. (Я имел в виду oversight($category))... Также после запроса вы помещаете результат в переменную $category. Это очень плохая практика.

Nabil Farhan 01.03.2019 10:55
Ответ принят как подходящий

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

после $category = Categorie::where('naam',$category)->first();

добавить строку

abort_if (is_null($category), 404);

и он вернет ошибку 404, как и должно быть.

спасибо за решение, он переходит на 404 не найден, но все еще не переходит на страницу входа в систему

JohnSmith2521 01.03.2019 11:48

Я добавил новый маршрут к /login и /register в web.php и теперь все работает!

JohnSmith2521 01.03.2019 12:22

Попробуйте отлаживать так,

public function oversight($category){
    try{
        $getCategory = Categorie::where('naam',$category)->first();
        if ($getCategory !== null){
            dd("I GOT SELECTED CATEGORY ROW");
        }else{
            dd("I THINK THERE IS NO DATA AVAIALBLE BASED ON WHERE Condition");
        }
        dd("ALL FINE I AM GOING BACK TO VIEW WITH DATA");
    }catch(\Exception $e){
        dd("I GOT THIS ERROR : ".$e->getMessage());
    }
}

Я уверен, что вы сможете исправить проблему этим.

Как заявил Нарбил Фархан, проблема в строчке:

$category = Categorie::where('naam',$category)->first();

Кажется, вы не получаете никакого результата из таблицы категорий. Первая проблема может заключаться в том, что таблицы не существует, обратите внимание, что Laravel ищет таблицу «Категории» (ищет название модели + s). Вероятно, вам следует поймать ошибку, если данные не возвращаются, как предложил Nevermind23.

if (isset($category->id) && $category->id != ""){
$artikels = Artikel::where('category_id', $category->id)->get()
}

Личное примечание: старайтесь не программировать на своем родном языке. Тем, кто не говорит по-голландски, сложнее понять ваш код.

спасибо за решение. насчет заметки, я знаю, что не создавал ее сам, я дал коллеге такую ​​же критику

JohnSmith2521 01.03.2019 11:43

Есть несколько решений:

  1. Решение:
$category = Categorie::where('naam', $category)->first();
if (#category){
//you can get the $artikels belonging to the category
}

В этом случае, если нет категории с соответствующим именем, $category будет нулевой, и код внутри оператора IF не будет выполнен.

  1. Решение:
$category = Categorie::where('naam', $category)->firstOrFail();
//you can get the $artikels belonging to the category

В этом случае, если Категория не найдена, будет выброшен Illuminate\Database\Eloquent\ModelNotFoundException. Если исключение не перехвачено, пользователю автоматически отправляется ответ 404 HTTP.

  1. Решение: привязка модели маршрута — см. документация
public function oversight(Categorie $category) {
    return view('pages.oversight', ['category'=>$category]);
}

В этом случае, если нет категории с соответствующим именем/идентификатором, пользователю автоматически отправляется ответ 404 HTTP.

Кроме того, я бы посоветовал вам создать (скорее всего OneToMany) отношение между моделями Categorie и Artikel. Это сделает вашу жизнь намного проще :)

Другие вопросы по теме