2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Laravel,данные введенные в форму не сохраняются в Request
Сообщение03.11.2017, 20:18 
Здравствуйте люди.
Подскажите в чем проблема.
Ниже приведены три файла из фреймворка Laravel.
Хочу создать форму для заполнения c кнопкой, при нажатии на которую, данные отправляются на сервер.
Я новичок, прочитал что данные отправленные таким способом из формы на сервер сохраняются в объекте класса
Request(в моем случае $request см ниже).
В итоге при запуске программы сначала выдает:
Array ( )
Name -поле ввода
Email -поле ввода
ssss- кнопка
И при нажатии на кнопку тоже самое!!!
Хотя вроде как Array ( ) теперь не пустой а заполнен введенными в форму данными.
Т.к print_r($request->all()); в коде есть.
Почему ничего в $request не сохранилось?

1)Создаю маршрутизатор:
Код:
<?php
Route::match(['get','post'],'/',['uses'=>'ContactController@show','as'=>'contact']);


2)Создаю контроллер(ContactController):
Код:
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;//используем род класс контроллер

class ContactController extends Controller
{

   
        public function show(Request $request){
      print_r($request->all());
        return view('contact');
   }
}


3)Создаю в представлении(contact.blade.php) форму для заполнения с двумя полями:

Код:
<form method="post" action="{{route('contact')}}">
<div class="form-group">
   <label for="name">Name</label>
      <input type="text" class="form-control" id="name" name="name" value="">
</div>

<div class="form-group">
   <label for="email">Email</label>
         <input type="email" class="form-control" id="email" name="email" value="">
</div>

<button type="submit" class="btn btn-primary">ssss</button>
{{csrf_field()}}
</form>

 
 
 
 Re: Laravel,данные введенные в форму не сохраняются в Request
Сообщение04.11.2017, 12:57 
Решено!
Для таких же новичков как я:
Что было сделано:
1)Работаю с браузером Хром, при нажатии на f12 выходит консоль.В ней выбираем вкладку network(что в переводе -сеть)->заходим во вкладку all->нажимаем на файл.
-В пункте Request Method(в нем указано каким методом вызван файл(страница)) у меня указан post, т.к страница вызвана методом post при отправке формы.
в моем случае:
Request URL:http://localhost/blog3/public

-В пункте Status Code находится ответ сервера.
В моем случае: Status Code: 301 Moved Permanently (погуглил:это значит что запрошенный ресурс был на постоянной основе перемещён в новое месторасположение)

Как узнать новое месторасположение месторасположение ?
Очень просто.Оно находится в пункте Location:
Location:http://localhost/blog3/public/

Я заметил что в новом месторасположении добавлена косая черта в конце:).
Что сделал?
Заменил <form method="post" action="{{route('contact')}}"> на <form method="post" action="{{route('contact')}}/">:
Код:
<form method="post" action="{{route('contact')}}/">
<div class="form-group">
   <label for="name">Name</label>
      <input type="text" class="form-control" id="name" name="name" value="">
</div>

<div class="form-group">
   <label for="email">Email</label>
         <input type="email" class="form-control" id="email" name="email" value="">
</div>

<button type="submit" class="btn btn-primary">ssss</button>
{{csrf_field()}}
</form>

Все заработало!Теперь в Array значения отправленные формой.

Теперь Status Code:200 OK.
Так же в консоли высвечиваются данные формы в пункте:FormData.
А кода было Status Code: 301 Moved Permanently - FormData пункта вобще не было(что настораживало,т.к запрос post а данные не передаются)

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group