Как использовать CSRF токен в Laravel Yajra datables и '.{{ csrf_token ()}}.' не работать

Как использовать CSRF токен в Laravel Yajra datables и '.{{ csrf_token ()}}.' не работать

27.03.2019 07:35:08 Просмотров 59 Источник

У меня есть этот код в laravel и я использовал yajra datatables и не могу использовать CSRF-токен. Вот мой код:

return DataTables::of($destroyList)
            ->addColumn('action', function ($destroyList){

                return '<form id="delete-data">
            {{ csrf_field() }}
                           <a href="#" data-id="'. $destroyList->id .'" title="Restore?" class="restore"> <i class="fa fa-rotate-left"></i></a>
                          &nbsp;|&nbsp; 
                          <a href="#" data-id="'. $destroyList->id .'" title="Parmanent Delete?" class="ptrash"> <i class="fa fa-trash"></i> </a>
                          </form>';
            })
            ->toJson();
У вопроса есть решение - Посмотреть?

Ответы - Как использовать CSRF токен в Laravel Yajra datables и '.{{ csrf_token ()}}.' не работать / How to use csrf token in Laravel Yajra datables and '.{{ csrf_token() }}.' not working

Является ответом!
Tim Lewis

27.03.2019 07:41:26

Поскольку это функция PHP, вы не можете использовать bladeи замените его эквивалентом PHP:

{{ csrf_field() }}

return '<form id="delete-data">'.csrf_field().'<a href="#" data-id="'. $destroyList->id .'" title="Restore?" class="restore"> <i class="fa fa-rotate-left"></i></a>&nbsp;|&nbsp;<a href="#" data-id="'. $destroyList->id .'" title="Parmanent Delete?" class="ptrash"> <i class="fa fa-trash"></i></a></form>'; как глобальная функция, которая возвращает HTML, необходимый для скрытого поля ввода, поэтому использование его в этой строке будет выводить

csrf_field()

В твою тетиву.

gbalduzzi

27.03.2019 07:52:55

Если вам нужно добавить сложное представление в столбец dataTable, вы можете использовать для этого пользовательский блейд-вид.

->addColumn('action', function ($destroyList){
   return view('destroyList.action'['destroyList' =>$destroyList]);
});

Затем создайте action.blade.phpв папке resources/views/destroyListdestroyList с требуемым html-кодом:

<form id="delete-data">
            {{ csrf_field() }}
    <a href="#" data-id="{{ $destroyList->id }}" title="Restore?" class="restore"> <i class="fa fa-rotate-left"></i></a>
    &nbsp;|&nbsp; 
    <a href="#" data-id="{{ $destroyList->id }}" title="Parmanent Delete?" class="ptrash"> <i class="fa fa-trash"></i> </a>
</form>
Raghu Aryan

20.11.2019 08:20:20

Если ваша версия laravel выше 5.5, то она не работает. https://laravel.com/docs/5.5/csrf

@CSRF атак

{{ csrf_field() }}

И laravel версии 5.6 и версии ++ https://laravel.com/docs/5.6/csrf

@CSRF атак

CSRF токен, а также использовать между тегом формы

Закрыть X