Изменение формы laravel на html форму - PullRequest
0 голосов
/ 08 апреля 2019

Привет, я создал форму с помощниками формы laravel, но я хочу изменить ее на стандартную HTML-форму.У меня проблема с функцией «PUT», когда я пытаюсь редактировать свои сообщения, данные не отображаются, поэтому я думаю, что мои свойства формы неверны.

Заголовок формы

<form method="post" action="{{route('posts.update',[$post->id])}}" enctype="multipart/form-data">
{{csrf_field()}}
{{method_field('put')}}

<input type=""text" name="name" class="name">
<input type=""text" name="body" class="body">
<button></button>
</form>

(--UPDATED -)

Форма Laravel

{!! Form::model($post, ['route' => ['posts.update', $post->id], 'method' => 'PUT']) !!}

            {{ Form::label('name', 'Name:') }}
            {{ Form::text('name', null, ["class" => 'form-control input-lg']) }}
{ Form::label('body', 'Body:') }}
            {{ Form::text('body', null, ["class" => 'form-control input-lg']) }}
{{ Form::submit('Save Changes', array('class' => 'btn btn-success btn-block')) }}
{{ Form::close() }}

Я хочу, чтобы данные блога отображались в форме, чтобы я мог их редактировать. Когда я использую помощники формы, она отлично работает

Любая помощь будет высоко ценится

Спасибо

Ясень

1 Ответ

0 голосов
/ 08 апреля 2019

Ash,

Я не вижу здесь кода формы Laravel, чтобы сравнить их, но самый простой способ преобразовать форму Laravel в прямой HTML - это просмотреть исходный код в сгенерированной форме и скопировать сгенерированный HTML-код обратно в блейд. Затем вы можете заменить заполненные данные переменными.

(- ОБНОВЛЕНО -)

Следовательно, положите это обратно в свой клинок:

{!! Form::model($post, ['route' => ['posts.update', $post->id], 'method' => 'PUT']) !!}

{{ Form::label('name', 'Name:') }}
{{ Form::text('name', null, ["class" => 'form-control input-lg']) }}
{ Form::label('body', 'Body:') }}
{{ Form::text('body', null, ["class" => 'form-control input-lg']) }}
{{ Form::submit('Save Changes', array('class' => 'btn btn-success btn-block')) }}
{{ Form::close() }}

, а затем скопируйте вывод HTML для действия "put". Или, если вы используете текущую версию Laravel, вы можете просто использовать метод put следующим образом:

@method('PUT')

(см. https://laravel.com/docs/5.8/blade)

(- ORIGINAL--) Кроме того, вы не упомянули, какая у вас версия Laravel. Синтаксис для вставки полей в блэйд варьируется.

(- UPDATED--) @kapitan, ты прав. Я «узнал», что с помощью LaraShift сказал мне, что все мои {{$ field}} нужно изменить на {!! $ field !!} обновить мое приложение. Синтаксис изменился следующим образом.

В более старых версиях Laravel переменные, вставленные с {{$ field}}, были UNescaped, а переменные, вставленные с {{{$ field}}}, были экранированы.

В более новых версиях Laravel переменные, вставленные с {{$ field}}, экранируются, а переменные вставляются с {!! $ field !!} не защищены. Таким образом, значение {{$ field}} изменилось со старых версий на новые.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...