Как решить эту функцию Laravel

Я создал регистрационную форму. Я хочу показать сообщение типа «вы не можете забронировать это», когда кто-то пытается вставить дату, показать время (st) и номер места (элемент), которые уже есть в базе данных. И если этих данных нет в базе данных, он может их вставить. Затем я создал функцию под названием seatinsert в SeatsController.php. Но когда я нажимаю кнопку отправки, ничего не происходит. Даже я не могу найти сообщение об ошибке.

Когда я проверяю консоль браузера, она показывает это.

http://localhost/FinalProject/public/seatsinsert 500 (Internal Server Error)

XHR failed loading: POST "http://localhost/FinalProject/public/seatsinsert"

И во вкладке «Сеть» -> «Ответ» показывает мне огромное сообщение, даже если я не могу его прочитать.

Журнал Laravel.

[2018-03-13 09:51:35] production.ERROR: No application encryption key has been specified. {"exception":"[object] (RuntimeException(code: 0): No application encryption key has been specified. at D:\wamp64\www\FinalProject\vendor\laravel\framework\src\Illuminate\Encryption\EncryptionServiceProvider.php:42) [stacktrace]

Как я могу это исправить ??

Вот Seats.blade.php

<form class = "form-horizontal" id = "form1" method = "POST" action = "{{ route('seatsinsert') }}" enctype = "multipart/form-data">    

    {{ csrf_field() }}    

    <h4> <span id = "success_message" class = "text-success"></span> </h4>

    <div class = "form-group row">
    <label for = "example-date-input" class = "col-2 col-form-label">Select Date :</label>
    <div class = "col-10">
    <input class = "form-control" type = "date" name = "date" placeholder = "mm-dd-yyyy" id = "example-date-input">
    </div>
    </div>

     <div class = "form-group">
    <label for = "exampleSelect1">Select Time :</label>
    <select name = "st" class = "form-control" id = "exampleSelect1">
      <option>10.30 am</option>
    </select>
    </div>  

      <h2 style = "font-size:1.2em;font-family: Times New Roman;"> Choose seats by clicking below seats :</h2>

      <div id = "holder"> 
    <ul id = "place">
        </ul>    
      </div>

      <div style = "width:600px;text-align:center;overflow:auto"> <br>       
         </div>

      <input type = "submit" class = "btn btn-primary" id = "btnShowNew" value = "Continue"> <br><br>

      @if (session()->has('Msg'))
      <h4 class = "alert alert-success"> {{ session()->get('OnlyImg') }} </h4>
      @endif 

    <br />   

    </center>

    <script type = "text/javascript">

        $(function () {

            $('#btnShowNew').click(function (e) {
                e.preventDefault();

                var items = [];
                $.each($('#place li.' + settings.selectingSeatCss + ' a'), function (index, value) {
                    items.push($(this).attr('title'));
                });

                   //console.info(items);
                   // $(location).attr('href', 'Seats');

                   $.ajax({ 
                    type: "post", 
                    url: "{{ route('seatsinsert') }}", 
                    data: { 
                    _token: "{{ csrf_token() }}", 
                    items: JSON.stringify(items), 
                    date: $('input[name=date]').val(), 
                    st: $('select[name=st]').val()}, 
                    success: function(data){ 
                    $("form").trigger("reset"); 
                    $('#success_message').fadeIn().html("Text"); 
                    } 
                    });

                }); //btnShowNew

         }); //Final  

Вот мой SeatsController.php

public function seatsinsert(Request $request)
    {

        $date = $request->input('date');
        $st = $request->input('st');
        $item = $request->input('items'); 
        $items = str_replace(['[', ']', '"'], '', $item); 

        // Validation

        $query = DB::table('seats')
        ->where('date', '=', $date)
        ->where('st', '=', $st)
        ->where('item', '=', $items)
        ->count();

        dd($query);

        if ($query > 0 ) { 
    $request->session()->flash('Msg', 'No Seat');
        return redirect('Seats');
    }
        else{

        $user = new Seats(); 
        $user->date = $date; 
        $user->st = $st; 
        $user->item = $items; 

        $user->save();
        $request->session()->flash('Msg', 'OK Seat Inserted');
        return redirect('Seats');
        }

    }

Вот мой роутер.

Route::post('seatsinsert',[
'uses'=> 'SeatsController@seatsinsert',
'as' => 'seatsinsert'
]);

Проверьте свой файл журнала на наличие недавних ошибок, который находится по адресу storage/logs/laravel.log. Также добавьте журнал ошибок к вопросу, чтобы помочь вам лучше

Vaibhavraj Roham 13.03.2018 10:58

Слишком много кода для чтения, но вы получаете 500, это означает, что сервер неправильно настроен или у вас есть ошибка в коде; осмотрите ..../logs/laravel.log для получения дополнительной информации. Удачи.

Kyslik 13.03.2018 10:58

Это «огромное сообщение» - это страница, возвращаемая laravel, и я предполагаю, что она содержит сообщение об ошибке стека исключений. Вам лучше проверить это, потому что он, вероятно, находится в первых строках сообщения стека, где вы найдете описание и ошибку строки оскорбления.

Amarnasan 13.03.2018 11:01

Кстати, вы знаете, что ничего не видите, потому что вы используете ajax для отправки сообщения (и получения ответа), верно?

Amarnasan 13.03.2018 11:03

@VaibhavrajRoham - Я добавил лог к ​​вопросу.

user9380202 13.03.2018 11:12

@Kyslik - Я добавил логи к вопросу. Как я могу это исправить ??

user9380202 13.03.2018 11:13

@Amarnasan - Я добавил логи к вопросу. Есть ли способ исправить это?

user9380202 13.03.2018 11:14

Вы не установили ключ приложения в файле среды. Используйте php artisan key:generate, чтобы создать его и проверить наличие ошибок.

Vaibhavraj Roham 13.03.2018 11:16
No application encryption key has been specified. Запустите команду artisan, которую я вам ответил ...
kevinniel 13.03.2018 11:16

@VaibhavrajRoham - Тем не менее, когда я нажимаю кнопку отправки, ничего не происходит. Даже я не могу найти сообщение об ошибке.

user9380202 13.03.2018 11:19

Используйте php artisan key:generate для генерации ключа. После этого вы используете ajax для отправки запроса, поэтому вы не можете использовать там session flash и redirects. Вам нужно возвращать ошибки с помощью response->json(['error' =>'message'])

Vaibhavraj Roham 13.03.2018 11:19

Также вы запускаете проект прямо из общей папки, используйте php artisan:serve, иначе ваши маршруты ajax не будут работать.

Vaibhavraj Roham 13.03.2018 11:20

@VaibhavrajRoham - В контроллере или в представлении ??

user9380202 13.03.2018 11:21

В контроллере

Vaibhavraj Roham 13.03.2018 11:22

@VaibhavrajRoham - Я думаю, что мой журнал Laravel не обновился. Вот почему я не вижу точной ошибки. Потому что сейчас 15.50, а мне по-прежнему 9:51. ошибка.

user9380202 13.03.2018 11:23

Он показывает 9:51, потому что вы еще не обновили правильный часовой пояс. Это не проблема

Vaibhavraj Roham 13.03.2018 11:25

@VaibhavrajRoham - Как я могу использовать "response-> json (['error' => 'message'])" в контроллере. Я пытался, но не смог.

user9380202 13.03.2018 11:32
Стоит ли изучать 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
17
609
3

Ответы 3

простой php artisan key:generate может решить проблему

Тем не менее, когда я нажимаю кнопку отправки, ничего не происходит. Даже я не могу найти сообщение об ошибке.

user9380202 13.03.2018 11:18

Вам не нужно нажимать кнопку отправки, просто чтобы запустить ее в командной строке.

Amarnasan 13.03.2018 11:24

откройте интерфейс командной строки, перейдите в корневой каталог проекта и запустите эту ремесленную строку ...

kevinniel 13.03.2018 11:25

Да, сделал .. То есть после того, как запустил эту команду. Тем не менее, я не могу отправить свою форму.

user9380202 13.03.2018 11:27

Да, все то же самое .. Возможно, журнал Laravel не обновился. Вот почему я не вижу точной ошибки. Потому что сейчас 15.50, а мне по-прежнему 9:51. ошибка.

user9380202 13.03.2018 11:32

попробуйте composer du (я думаю, вам нужно делать это каждый раз, когда вы генерируете ключ, но не уверен в этом)

kevinniel 13.03.2018 11:39

Я думаю, что журнал Laravel не показал мне ошибку. Потому что я ошибся и проверил логи. Он показал эту ошибку. После того, как я вернусь и попробую снова с этой регистрационной формой, у меня все еще есть предыдущая ошибка. Новых ошибок нет ..

user9380202 13.03.2018 13:54

Что ж, теперь это очевидно с сообщением об ошибке:

Вам нужно сгенерировать ключ.

$> php artisan key:generate 

Я думаю, что мой журнал Laravel не обновился. Вот почему я не вижу точной ошибки. Потому что сейчас 15.50, а мне по-прежнему 9:51. ошибка.

user9380202 13.03.2018 11:24

Откройте cmd и просто запустите команду php artisan key:generate

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