How to encrypt id in URL laravel

Viv*_*nka -1 php encryption laravel

I want to encrypt the id in URL I'll show my controller code and route. I've already used Crypt::encrypt($id); in my controller but it's not working properly so I've commented that line in my controller

this is my controller

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';
    }
}
 
                         }
Run Code Online (Sandbox Code Playgroud)

这是我的路线

  Route::post('tender/update/{id}','Tender\TenderMasterController@update')->name('bid.update');
Run Code Online (Sandbox Code Playgroud)

这是我的刀片

<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>
Run Code Online (Sandbox Code Playgroud)

Kha*_*han 5

将其放入您的表单操作标记中

<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>
Run Code Online (Sandbox Code Playgroud)

并替换控制器的这一行:

$tender = TenderMaster::findOrFail($id);
Run Code Online (Sandbox Code Playgroud)

有了这个:

$tender = TenderMaster::findOrFail(Crypt::decrypt($id));
Run Code Online (Sandbox Code Playgroud)

并且不要忘记在控制器上方添加这一行

use Illuminate\Support\Facades\Crypt;
Run Code Online (Sandbox Code Playgroud)

希望它能起作用