Способы формы Laravel VS традиционное кодирование

В настоящее время я изучаю Laravel и считаю его полезным и интересным.

На данный момент я делаю простую онлайн-заявку.

Каковы самые большие преимущества в работе с синтаксисом Laravel:

{{ Form::open(array('url' => 'foo/bar')) }} 

В отличие от просто:

 <form action="foo/bar"> 

Или:

 echo Form::text('username'); 

Вместо:

 <input type="text" name="username" /> 

Ларавельский путь должен быть лучше, я просто хочу знать, почему именно?

Related of "Способы формы Laravel VS традиционное кодирование"

Использование встроенных HTML-помощников имеет много преимуществ:

  1. С помощью Form::open вы добавили скрытый вход CSRF (по умолчанию)

  2. Использование элементов формы (input / textarea и т. Д.) withInput метода withInput для перенаправления позволяет вам легко заполнить форму с теми же данными почти без кодирования

    Если вы используете Redirect::route('form'->withInput(); и Redirect::route('form'->withInput(); текст ввода {{Form::text('username')}} он автоматически установит значение ввода старых данных – вам не нужно код, который он сам проверяет

  3. Также, если вы хотите совместить поля с ярлыками, это намного проще:

     {{ 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') ?>' /> 

Это все равно будет работать, поле будет заселено при перенаправлении обратно с входами.