Шаблон Laravel Blade Form :: open () для HTML - PullRequest
0 голосов
/ 24 сентября 2018

Я следую учебному пособию по Laravel.

Однако я хочу преобразовать шаблон лезвия Form::open() в форму html / php, чтобы его было легче читать и понимать.

Это шаблон Blade:

   {{ Form::open(['action'=> ['StudentController@destroy', $student->id], 'method'=>'POST']) }}
            {{ method_field('DELETE') }}
            {{ Form::submit('Delete',['class'=>'btn btn-danger']) }}
   {{ Form::close() }}

Мне нужно преобразовать код blade-сервера в html / php. Я пробовал это несколько раз, что-то вроде этого.но не удалось .

    <form action="url('StudentController@destroy', $student->id)" method="POST">
        <?php method_field('Delete'); ?>
        <button class="btn btn-danger" type="submit">Delete</button>
    </form>

Кто-нибудь знает правильную форму html / php?

[править] Маршрут: список enter image description here

Ответы [ 4 ]

0 голосов
/ 24 сентября 2018

Для вызова действия контроллера вам необходимо использовать url()->action(...) (или action()) для краткости.

<form action="{{url()->action('StudentController@destroy', ['id'=>$student->id])}}" method="POST">
    @csrf
    {{ method_field('DELETE'); }}
    <button class="btn btn-danger" type="submit">Delete</button>
</form>

Это также описано в руководстве

0 голосов
/ 24 сентября 2018

В вашем 'действии' на форме вам нужно заключить все вспомогательные функции в скобки, чтобы Blade знал, что с этим делать, в противном случае это просто текст.

Также обратите внимание, я удалил поле method_field'и заменили его скрытым полем, поскольку это, по сути, то, что создает помощник method_field.

<form action="{{route('StudentController@destroy', ['id' => $student->id])}}" method="POST">
        <input type='hidden' value='DELETE'>
        <button class="btn btn-danger" type="submit">Delete</button>
</form>

Если использование помощника route не работает, вы можете использовать более простой подход дляПараметр 'action' в форме тега:

<form action="/student/destroy/{{$student->id}}" method="POST">
0 голосов
/ 24 сентября 2018

попробуйте так

используйте {{}} и используйте route

 <form action="{{route('StudentController@destroy', ['id'=>$student->id])}}" method="POST">
    <?php method_field('Delete'); ?>
    <button class="btn btn-danger" type="submit">Delete</button>
</form>
0 голосов
/ 24 сентября 2018

Вы должны использовать этот код

<form action="{{ url('StudentController@destroy', $student->id) }}" method="POST">
    <input type='_method' value='DELETE' />
    <button class="btn btn-danger" type="submit">Delete</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...