<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MouseController extends Controller {
public function form() {
return view('mouse.form');
}
}
?>
Теперь сделаем представление с простейшей формой из одного текстового поля и кнопки отправки формы:
<form action="" method="get">
<input type="text" name="text">
<input type="submit">
</form>
Для примера мы используем метод отправки "GET", потому что он легче относительно реализации POST (меньше нюансов), о котором поговорим позже.
Для получения значения данных форма в Laravel используется класс Request. Чтобы использовать его внутри контроллера, необходимо сначала подключить его с помощью "use". А внутри аргумента функции "form" напишем переменную $request от класса Request:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MouseController extends Controller {
public function form(Request $request) {
echo $request->input('text'); // в переменной $request содержатся данные запроса
return view('mouse.form');
}
}
?>
Давайте ограничим вывод, если не передаётся никаких данных. Сделаем это с помощью метода "has", который проверяет поле на существование (и ненулевую длину). Будем делать вывод значение только в том случае, если оно есть в переменной $request:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MouseController extends Controller {
public function form(Request $request) {
if($request->has('text')){
echo $request->input('text');
}
return view('mouse.form');
}
}
?>
Несколько действий
В предыдущем примере мы разместили обработку действия непосредственно в функции вызова представления. Попробуем теперь разделить их на две функции. Первая функция "form" даёт представление формы, а вторая "result" выводит результат. Причём в функции "result" будет вызываться своё представление, в которое передаются принятые от формы данные.<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MouseController extends Controller {
public function form() {
return view('mouse.form');
}
public function result(Request $request) {
$text = $request->input('text');
return view('mouse.result', ['text' => $text]);
}
}
?>
Остаётся только сделать представление "mouse.result", в котороый воводить значение из поля переданной формы с помощью {{ $text }}
.