Всем доброго времени суток. Изучаю laravel
. Разобрался с маршрутизацией и сборкой дизайна, добрался до обработки форм. Тестирую на исходниках прошлого учебного проекта, собранного на php+ajax
jquery+mysql
. Хочу отработать форму комментирования статьи. Код исходников прилагается ниже
Контроллер indexController, метод comment
<?php
public function comment(request $input){
//$input = $request->all();
$this->validate($input, [
'name' => 'required|max:100',
'message' => 'required|unique:comments,message',
'article_id' => 'required|articles,id'
]);
$data = array('name' => $input['name'],
'message' => $input['message'],
'article_id' => $input['article_id']);
$result = DB::table('comments')->insert($data);
if ($result == true) $response = 0;
else $response = 'error';
return json($response);
}
?>
Фрагмент вида article-content.blade.php
, форма добавления комментария и аякс обработчик
<form method="post" action="" id="comment_form">
<ul>
<li>
<label for="name">Ваше имя:</label>
<input type="text" id="name" required class="required" placeholder="Ваше имя">
</li>
<li>
<label for="message">Комментарий:</label>
<textarea name="message" id="message" cols="100" rows="6" required class="required" ></textarea>
<input type="hidden" id="article_id" value="{{$article->id}}">
</li>
<li>
<button type="submit" name="submit" id="submit" class="button fright">Оставить комментарий</button>
<span id="resp"></span>
{{csrf_field()}}
</li>
</ul>
</form>
<script>
$(document).ready(function(){
var time = new Date();
var date = time.getFullYear()+"-" +(time.getMonth()+1)+ "-" +time.getDate()+ " " +time.getHours()+ ":"+time.getMinutes()+ ":"+time.getSeconds();
$("#comment_form").submit(function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: '/comment',
data: $("#comment_form").serialize(),
dataType: 'json',
cache: false,
success: function(response){
var messageResp = new Array('Ваше сообщение отправлено');
var resultStat = messageResp[Number(response)];
if(response == 0){
$("#name").val("");
$("#message").val("");
$("#comments").append('<ol class="comments"><li class="comment"><h6>'+name+' <span class="meta">'+date+'</span></h6><p>'+message+'</p></li></ol>');
}
$("#resp").text(resultStat).show().delay(1500).fadeOut(800);
return false;
}
});
});
});
</script>
Запись в маршрутизаторе route/web.php
Route::post('/comment', 'IndexController@comment');
Собственно вопрос в том, что на сервер приходит урезанный набор полей: инпуты name
и article_id
не отправляются, в связи с чем валидация не проходит и метод comment
возвращает ошибку. Хотелось бы узнать, почему так происходит. Заранее спасибо за ответы
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Очень нужна ваша помощь, что-то подтупливаю с утра) Есть куча записей
Делаю самостоятельно календарьИспользуя $_GET получаю месяц и год
Как распределить сообщение таким образом? допустим я справа и собеседник слеваМеня интересует как это реализовать на PHP MYSQL
ребят у меня есть таблица product в ней есть строка организация_id, при заполнении таблицы туда передается id организации,