添加令牌以查看 make laravel
Adding token to view make laravel
我有 link 这样的令牌:
<a href="{{ URL::to('/users/submit/' . $id->id) }}?_token={{ csrf_token() }}">Submit New</a>
产生 url:
http://example.com/users/submit/20?_token=fpf0LwHyf0JGBg0fnixjRFo1B5GgUM3RDp6dVgUU
现在在我的控制器中我添加了检查数据库中的一列的条件,并基于此 returning 不同的视图。
public function wrongIdSubmit($Id) {
$submits = self::$user->where('submit_id', $Id)->first();
if (!$txid) {
App::abort(404);
}
if($submits->submit_id > 3) {
return View::make('fail',[
'submits' => $submits
]);
}
else {
return View::make('submit',[
'submits' => $submits
]);
}
}
我的问题是如何将此标记 ?_token={{ csrf_token() }}
与 $submits 变量一起传递给 return View::make?因为就像现在我有错误
production.ERROR: Illuminate\Session\TokenMismatchException
您必须将令牌添加到表单本身。您不能在 URL 中传递它。将以下内容添加到您的表单中:
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
Laravel 提供 returns 直接用 token 输入隐藏字段的功能。
csrf_field()
它将生成一个 HTML 包含 CSRF 令牌值的隐藏输入字段。
所以你可以这样试试:
return View::make('fail',[
'submits' => $submits,
'token' => csrf_field()
]);
并且在视图中只打印:
{!! $token !!}
或者直接也喜欢:
{!! csrf_field() !!}
输出如下:
<input type="hidden" name="_token" value="*****" />
祝你好运..
我有 link 这样的令牌:
<a href="{{ URL::to('/users/submit/' . $id->id) }}?_token={{ csrf_token() }}">Submit New</a>
产生 url:
http://example.com/users/submit/20?_token=fpf0LwHyf0JGBg0fnixjRFo1B5GgUM3RDp6dVgUU
现在在我的控制器中我添加了检查数据库中的一列的条件,并基于此 returning 不同的视图。
public function wrongIdSubmit($Id) {
$submits = self::$user->where('submit_id', $Id)->first();
if (!$txid) {
App::abort(404);
}
if($submits->submit_id > 3) {
return View::make('fail',[
'submits' => $submits
]);
}
else {
return View::make('submit',[
'submits' => $submits
]);
}
}
我的问题是如何将此标记 ?_token={{ csrf_token() }}
与 $submits 变量一起传递给 return View::make?因为就像现在我有错误
production.ERROR: Illuminate\Session\TokenMismatchException
您必须将令牌添加到表单本身。您不能在 URL 中传递它。将以下内容添加到您的表单中:
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
Laravel 提供 returns 直接用 token 输入隐藏字段的功能。
csrf_field()
它将生成一个 HTML 包含 CSRF 令牌值的隐藏输入字段。
所以你可以这样试试:
return View::make('fail',[
'submits' => $submits,
'token' => csrf_field()
]);
并且在视图中只打印:
{!! $token !!}
或者直接也喜欢:
{!! csrf_field() !!}
输出如下:
<input type="hidden" name="_token" value="*****" />
祝你好运..