我想对我的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');
这是我的刀刃
<form action="{{route('bid.update' ,Crypt::encrypt('id'))}}" class="form-horizontal" id="bid-update" method="POST">
{{ csrf_field() }}
@method('POST')
@include ('tender.form', ['formMode' => 'edit'])
</form>
答案 0 :(得分:0)
使用laravel内置加密来实现此目的:
在前端添加路由时,请使用以下加密助手对ID进行加密:
{{route('bid.update', encrypt($id))}}
现在,在您的控制器中,解密您传递的ID。
public function update($id, Request $request){
$ID = decrypt($id);
$tender = TenderMaster::findOrFail($ID);
..
...
}
希望您能理解
这是文档:
答案 1 :(得分:0)
将其放在您的表单操作标签中
<form action="/tender/update/{{Crypt::encrypt('id')}}" class="form-horizontal" id="bid-update" method="POST">
{{ csrf_field() }}
@method('POST')
@include ('tender.form', ['formMode' => 'edit'])
</form>
并替换控制器的这一行:
$tender = TenderMaster::findOrFail($id);
与此:
$tender = TenderMaster::findOrFail(Crypt::decrypt($id));
别忘了在控制器中添加此行
use Illuminate\Support\Facades\Crypt;
希望它能工作
答案 2 :(得分:0)