Как добавить пользовательское действие для сохранения

Мне нужно знать, как добавить (отобразить) параметр пользовательского действия на кнопку «Сохранить», например: «Сохранить и отправить» в Backpack для Laravel. Мне нужно сохранить и отправить почту после него.


person niltonmelox    schedule 26.07.2017    source источник
comment
Привет @niltonmelox: можешь показать нам код, который у тебя есть?   -  person Vince Horst    schedule 27.07.2017
comment
Теперь все в порядке. Спасибо @vince-horst   -  person niltonmelox    schedule 21.09.2017


Ответы (2)


Это можно сделать, отредактировав файл: \resources\views\vendor\backpack\crud\inc\form_save_buttons.blade.php и добавив еще один элемент li после элемента @endforeach;

...
@endforeach
<li><a href="javascript:void(0);" data-value="save_and_send">Save and Send</a></li>

Обратите внимание на data-value как на save_and_send. Это пользовательское событие, которое должно быть перехвачено функцией store/update в CrudController.

Итак, на вашем EntityCrudController измените действие store и update на что-то вроде этого:

public function update(UpdateRequest $request)
{
    if(session('save_action') == 'save_and_send') {
        // Add you send mail code here
    }

    return parent::updateCrud();
}

Сделайте то же самое для функции магазина, если вам нужно.

Это не приведет к сохранению действия 'save_and_send' в вашем сеансе для будущих действий, для этого вам потребуется расширить черту Backpack\CRUD\app\Http\Controllers\CrudFeatures\SaveActions.

Надеюсь, поможет.

person António Almeida    schedule 02.08.2017
comment
Спасибо @ToniAlmeida - person niltonmelox; 21.09.2017

в laravel рюкзаке 4.0 я использую это, и это работает.

use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation {update as traitUpdate ;}

public function update(UpdateRequest $request)
{
    if(\Request::input('save_action') == 'save_and_send') {
        // Add you send mail code here
    }

    return $this->traitUpdate();
}
person Giordo G    schedule 02.04.2020