Я создал регистрационную форму. Я хочу показать сообщение типа «вы не можете забронировать это», когда кто-то пытается вставить дату, показать время (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'
]);
Слишком много кода для чтения, но вы получаете 500, это означает, что сервер неправильно настроен или у вас есть ошибка в коде; осмотрите ..../logs/laravel.log для получения дополнительной информации. Удачи.
Это «огромное сообщение» - это страница, возвращаемая laravel, и я предполагаю, что она содержит сообщение об ошибке стека исключений. Вам лучше проверить это, потому что он, вероятно, находится в первых строках сообщения стека, где вы найдете описание и ошибку строки оскорбления.
Кстати, вы знаете, что ничего не видите, потому что вы используете ajax для отправки сообщения (и получения ответа), верно?
@VaibhavrajRoham - Я добавил лог к вопросу.
@Kyslik - Я добавил логи к вопросу. Как я могу это исправить ??
@Amarnasan - Я добавил логи к вопросу. Есть ли способ исправить это?
Вы не установили ключ приложения в файле среды. Используйте php artisan key:generate, чтобы создать его и проверить наличие ошибок.
No application encryption key has been specified. Запустите команду artisan, которую я вам ответил ...
@VaibhavrajRoham - Тем не менее, когда я нажимаю кнопку отправки, ничего не происходит. Даже я не могу найти сообщение об ошибке.
Используйте php artisan key:generate для генерации ключа. После этого вы используете ajax для отправки запроса, поэтому вы не можете использовать там session flash и redirects. Вам нужно возвращать ошибки с помощью response->json(['error' =>'message'])
Также вы запускаете проект прямо из общей папки, используйте php artisan:serve, иначе ваши маршруты ajax не будут работать.
@VaibhavrajRoham - В контроллере или в представлении ??
В контроллере
@VaibhavrajRoham - Я думаю, что мой журнал Laravel не обновился. Вот почему я не вижу точной ошибки. Потому что сейчас 15.50, а мне по-прежнему 9:51. ошибка.
Он показывает 9:51, потому что вы еще не обновили правильный часовой пояс. Это не проблема
@VaibhavrajRoham - Как я могу использовать "response-> json (['error' => 'message'])" в контроллере. Я пытался, но не смог.






простой php artisan key:generate может решить проблему
Тем не менее, когда я нажимаю кнопку отправки, ничего не происходит. Даже я не могу найти сообщение об ошибке.
Вам не нужно нажимать кнопку отправки, просто чтобы запустить ее в командной строке.
откройте интерфейс командной строки, перейдите в корневой каталог проекта и запустите эту ремесленную строку ...
Да, сделал .. То есть после того, как запустил эту команду. Тем не менее, я не могу отправить свою форму.
Да, все то же самое .. Возможно, журнал Laravel не обновился. Вот почему я не вижу точной ошибки. Потому что сейчас 15.50, а мне по-прежнему 9:51. ошибка.
попробуйте composer du (я думаю, вам нужно делать это каждый раз, когда вы генерируете ключ, но не уверен в этом)
Я думаю, что журнал Laravel не показал мне ошибку. Потому что я ошибся и проверил логи. Он показал эту ошибку. После того, как я вернусь и попробую снова с этой регистрационной формой, у меня все еще есть предыдущая ошибка. Новых ошибок нет ..
Что ж, теперь это очевидно с сообщением об ошибке:
Вам нужно сгенерировать ключ.
$> php artisan key:generate
Я думаю, что мой журнал Laravel не обновился. Вот почему я не вижу точной ошибки. Потому что сейчас 15.50, а мне по-прежнему 9:51. ошибка.
Откройте cmd и просто запустите команду php artisan key:generate
Проверьте свой файл журнала на наличие недавних ошибок, который находится по адресу
storage/logs/laravel.log. Также добавьте журнал ошибок к вопросу, чтобы помочь вам лучше