Отправить форму с несколькими возможными действиями Laravel - PullRequest
0 голосов
/ 13 июня 2019

Я использую Laravel Framework, где у меня есть форма, в которой отображается список профилей (с использованием модели профиля).Все эти профили связаны одним массивом флажков.Вверху есть кнопка, которая при нажатии удаляет выбранные профили (здесь используется действие ProfileController @ deleteProfile).Также у каждого профиля есть кнопка рядом с ним, которая при нажатии должна перейти к действию ProfileController @ editProfile, но я не уверен, где указать это другое действие в форме.Есть ли способ вызвать другое действие при нажатии кнопки «Изменить»?

@if(count($profiles) > 0) 

{!! Form::open(['action' => ['AdminController@deleteProfile'], 'method' => 'POST']) !!}
{{  Form::submit('Delete Selected Profiles', ['class' => 'btn btn-danger']) }}  
<table class="table">
    <thead class="thead-dark">
        <tr>
            <th scope="col">#</th>
            <th scope="col">Select</th>
            <th scope="col">Title</th>
            <th scope="col"></th>
        </tr>
    </thead>
    <tbody>
        @foreach($profiles as $profile)
            <tr>
                <th scope="row">{{ $profile->id }}</th>

                <td>   
                    <input type="checkbox" name="selectedProfiles[]" value="{{ $profile->id }}" />                           
                </td>
                <td>{{ $profile->title }}</td>
                <td>
                    {{  Form::hidden('id', $profile->id) }}    
                    {{  Form::submit('Edit', ['class' => 'btn btn-secondary']) }}                                  
                </td>
            </tr>
        @endforeach
    </tbody>
</table>
{!! Form::close() !!}

@endif

Еще один подход, который я пробовал, - создать обобщенное действие ProfileModify, в котором я бы передал дополнительную переменную, чтобы указать желаемое действие.реализовать «Редактировать» или «Удалить», но я не могу найти способ условно передать скрытый ввод для отправки «Редактировать» или «Удалить», когда мы нажимаем 2 отдельные кнопки.

Может кто-нибудь подсказать, какподойти к этому вопросу, и если это действительно возможно, а если нет, то лучшая возможная альтернатива для решения этой ситуации?

1 Ответ

1 голос
/ 13 июня 2019

Вам не нужна форма для отправки ссылки на страницу редактирования профиля, просто используйте тег a.

Если вы назвали маршруты:

{{ link_to_route('profile.edit', 'Edit', ['id' => $profile->id]) }}

Для действий:

{{ link_to_action('ProfileController@editProfile', 'Edit', ['id' => $profile->id]) }}


Docs

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