[英]How to encrypt id in URL laravel
我想对我的id进行加密,以显示我的控制器代码和路由(我已经在控制器中使用了Crypt :: encrypt($ id);,但是它不能正常工作,所以我在控制器中碰到了这行
这是我的控制器
public function update(TenderRequest $request,$id)
{
$tender = TenderMaster::findOrFail($id);
//Crypt::encrypt($id);
if($request->extend_date < $request->end_date || $request->bid_status > 0){
return 'unsuccess';
}else{
$transaction = DB::transaction(function () use($request,$tender,$id) {
$tender->extend_date = $request->extend_date;
$tender->remarks = $request->remarks;
$tender->update($request->all());
});
return 'BID '.$tender->ref_no.' Succesfully Updated';
}
这是我的路线
Route::post('tender/update/{id}','Tender\TenderMasterController@update')->name('bid.update');
使用laravel内置加密来实现此目的:
在前端添加路由时,请使用加密助手对ID进行加密,如下所示:
{{route('bid.update', encrypt($id))}}
现在,在您的控制器中,解密您已传递的ID。
public function update($id, Request $request){
$ID = decrypt($id);
$tender = TenderMaster::findOrFail($ID);
..
...
}
我希望你明白。
这是文档:
将其放在表单操作标签中
<form action="tender/update/{{Crypt::encryptString('id')}}">
并替换控制器的这一行:
$tender = TenderMaster::findOrFail($id);
有了这个:
$tender = TenderMaster::findOrFail(Crypt::decryptString($id));
并且不要忘记在控制器中添加此行
use Illuminate\Support\Facades\Crypt;
希望它会起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.