В настоящее время я изучаю Laravel и считаю его полезным и интересным.
На данный момент я делаю простую онлайн-заявку.
Каковы самые большие преимущества в работе с синтаксисом Laravel:
{{ Form::open(array('url' => 'foo/bar')) }}
В отличие от просто:
<form action="foo/bar">
Или:
echo Form::text('username');
Вместо:
<input type="text" name="username" />
Ларавельский путь должен быть лучше, я просто хочу знать, почему именно?
Использование встроенных HTML-помощников имеет много преимуществ:
С помощью Form::open
вы добавили скрытый вход CSRF (по умолчанию)
Использование элементов формы (input / textarea и т. Д.) withInput
метода withInput
для перенаправления позволяет вам легко заполнить форму с теми же данными почти без кодирования
Если вы используете Redirect::route('form'->withInput();
и Redirect::route('form'->withInput();
текст ввода {{Form::text('username')}}
он автоматически установит значение ввода старых данных – вам не нужно код, который он сам проверяет
Также, если вы хотите совместить поля с ярлыками, это намного проще:
{{ Form::label('username', 'Enter username') }} {{ Form::text('username') }}
он будет генерировать следующий код:
<label for="username">Enter username</label> <input name="username" type="text" id="username">
так как вы увидите, что идентификатор будет создан автоматически
Возможно, есть еще кое-что. Однако основным недостатком является то, что вам нужно учиться, и он не переносится, если вы хотите переместить свой сайт на другую платформу, но каждое решение имеет свои плюсы и минусы.
Существует так много преимуществ использования компонента Form
Laravel
но одно полезное преимущество заключается в том, что, когда вы просто используете это:
{{ Form::open(array('url' => 'foo/bar')) }} {{ Form::close() }}
Он автоматически добавляет скрытое поле _token
которое полезно для защиты CSRF
. в противном случае вы должны вручную создать поле _token
используя echo Form::token()
или, возможно, иначе. Кроме того, когда вы используете маршруты RESTful
тогда компонент Form
Laravel
добавляет соответствующее скрытое поле _method
. Следующее примечание взято на веб-сайте Laravel
:
Примечание. Поскольку HTML-формы поддерживают только методы POST и GET, PUT и DELETE будут подделаны путем автоматического добавления скрытого поля _method в вашу форму.
Существуют также другие преимущества, такие как Form Model Binding
, создание элементов формы (специально select
) легко и многое другое. Подробнее о Form
по документации .
BTW, Redirect::back()->withInput()
не deppend только при использовании компонента Form
, если вы используете что-то вроде этого, например:
<input type='text' name='username' value='<?php echo Input::old('username') ?>' />
Это все равно будет работать, поле будет заселено при перенаправлении обратно с входами.