我有一个像http://localhost:8000/assessment/3/199
这样的网址其中3代表赋值id,199代表评估者id,简而言之,它们都代表两个模型。
我正在将此类网址发送到电子邮件中。我想首先加密URL然后将其发送到电子邮件。
我想要像http://localhost:8000/assessment/ {some-long-random-string}
这样的网址所以,我想合并两个参数,制作一个加密的字符串,发送到电子邮件,一旦访问URL就解密它并获得两个实际参数。
我想要一个使用Laravel来实现它的解决方案。 可能正在使用这些:
答案 0 :(得分:0)
我要解决这个问题的方法是在控制器中手动实现它。 生成如下URL:
$url = URL::action('AssessmentController@decrypt', json_encode([
'assessment' => $assessment_id,
'assessor' => $assessor_id
]);
//now, use $url in your email
创建一条路线,如:
Route::get('/assessment/{ciphertext}', 'AssessmentController@decrypt');
在控制器中:
public function decrypt($ciphertext){
$params = json_decode(decrypt($ciphertext));
return $this->getAssessment($params['assessment'], $params['assessor']);
}
当然,您需要更多的完整性检查和一些错误处理,但您可能会有这个想法。