我有这个代码,我需要存储在一个变量中,所以我在视图中显示它, 我尝试了不同的方法来打包“表头”并使用CSRF无法正常工作
$return = '<form method="post" action="/procurement/add-product">
'.{{ csrf_token() }}.'
<input type="hidden" name= "product_id" value=".$row->id.">
<input type="text" name="product_qty" class="form-control">
<button type="submit" class="btn btn-primary btn-block">Add Item</button>
</form>';
return $return;
这是我的路线
Route::post('/procurement/add-product','ProductController@addProcurementProduct');
这是JAvascript部分
<script type="text/javascript">
$(function() {
$('#procurement-table').DataTable({
processing: true,
serverSide: true,
ajax: '{{ url('procurement/get_procurement_datatable') }}',
columns : [
{data: 'id', name: 'id'},
{data: 'po_number', name: 'po_number'},
{data: 'action', searchable: false, orderable: false},
{data: 'created_at', name: 'created_at'},
{data: 'updated_at', name: 'updated_at'}
]
});
});
</script>
答案 0 :(得分:0)
我已经添加了缺少隐藏字段^[0]{1}\.[0-9]{2}$
,这是在laravel提交和授权表单提交时需要的。
csrf_token()
答案 1 :(得分:0)
你需要声明你的行动:
$return = '<form method="post" action="{{ action('ProcurementController@update', $details->id) }}">
<input name="_token" type="hidden" value="{{ csrf_token() }}"><!--Added csrf missing field-->
<input name="_method" type="hidden" value="PATCH">
<input type="text" name="product_qty" class="form-control">
<button type="submit" class="btn btn-primary btn-block">Add Item</button>
</form>';
请检查:https://laravel.com/docs/5.4/controllers#resource-controllers
也许您必须将csrf_token添加到表单中。
或者您可以使用Blade Form https://laravelcollective.com/docs/5.0/html:
<form method="PUT" action="{{ route('product.update', $details->id) }}">
编辑:您必须对表单使用PUT / PATCH方法(请参阅有关资源控制器的链接)
答案 2 :(得分:0)
将表单返回到另一个刀片,例如view / products / datatables.blade.php
示例:控制器应类似于:-
public function getproducts()
{
$product = Product::all(); //Product is Model name
return Datatables::of($product)
->addColumn('action', function($product)
{
return view('product.datatables', compact('product'))->render();
})->make(true);
}
视图应如下所示:
<a href="{{ route('product.edit', ['$id' => $product->id]) }}" class="btn btn-success btn-sm">Edit</a>
<form action="/product/{{ $product->id }}" method="post" id="deleteForm">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<button class="btn btn-danger btn-sm" type="submit">Delete</button>
</form>
它将正常工作。因为在控制器中无法读取小胡子{{}}。我们将东西重定向到刀片上