Yajra 数据表 Laravel 上的 CSRF 不工作
CSRF on Yajra Datatable Laravel not working
我在 laravel 中有这段代码,并使用 YAJRA 作为我的数据表,在提交时说 CSRF 令牌是错误的,这里附上我在 View/Blade 中渲染之前在 Controller 中的代码。
这是我的代码:
$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;
我通过文档找到了答案,https://laravel.com/docs/master/csrf
我只是把上述形式的 URI
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
'procurement/*',
];
}
Return 表格到另一个 blade 喜欢 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>
它将正常工作。因为小胡子 {{}} 无法在控制器中读取。我们将事物重定向到 blade
我在 laravel 中有这段代码,并使用 YAJRA 作为我的数据表,在提交时说 CSRF 令牌是错误的,这里附上我在 View/Blade 中渲染之前在 Controller 中的代码。 这是我的代码:
$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;
我通过文档找到了答案,https://laravel.com/docs/master/csrf 我只是把上述形式的 URI
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
'procurement/*',
];
}
Return 表格到另一个 blade 喜欢 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>
它将正常工作。因为小胡子 {{}} 无法在控制器中读取。我们将事物重定向到 blade