使用 laravel 5.1 中的数据表从控制器发送表单以查看

Send form from controller to view using datatables in laravel 5.1

这是我的代码:

public function getRolesData()
    {
        $roles = Role::All();
        return Datatables::of($roles)      
            ->addColumn('action', function ($role) {
                return "{!! Form::open(array('method'=>'DELETE', 'route' => array('admin.role.destroy',".$role->id."))) !!}
                        {!! Form::submit('Delete', array('class'=>'btn btn-danger')) !!}
                        {!! Form::close() !!}
                        ";
                })            
                ->make(true);
    }

在视图的 'action' 列中,我得到相同的代码:

{!! Form::open(array('method'=>'DELETE', 'route' => array('admin.role.destroy',1))) !!} {!! Form::submit('Delete', array('class'=>'btn btn-danger')) !!} {!! Form::close() !!} 

没有出现提交按钮!我的代码有什么错误?

在您的示例中,您使用的是 blade sintax,它不会在您的控制器中运行,因为它不是 blade 文件。

尝试:

return  \Form::open(array('method'=>'DELETE', 'route' => array('admin.role.destroy',".$role->id."))) .
        \Form::submit('Delete', array('class'=>'btn btn-danger')) .
        \Form::close();

或者,您可以将表单移入 blade 文件

例如views/admin/role/partials/datatables-form.blade.php(或任何对您的应用有意义的地方),而只是 return 那个视图文件。

return view('admin.role.partials.datatables-form', compact('role'))

admin/role/partials/datatables-form.blade.php

{!! Form::open(array('method'=>'DELETE', 'route' => array('admin.role.destroy',".$role->id."))) !!}
{!! Form::submit('Delete', array('class'=>'btn btn-danger')) !!}
{!! Form::close() !!}

希望对您有所帮助!