3 回答

TA貢獻1863條經驗 獲得超2個贊
電子郵件不是瀏覽器,幾乎在所有情況下<form>
標簽都不起作用。您無法從電子郵件中檢索用戶輸入,但是在您的情況下,如果電子郵件中有兩個按鈕,并且該電子郵件正在發送給系統中存在的用戶,并且您收到的輸入是“接受”或“拒絕” ' 根據他們點擊的按鈕,這是可行的。
您可以擁有兩條可公開訪問的路由,并構建兩個帶有 href 的“按鈕”來執行這些操作。喜歡:
Route::get('email/accept/{user_id}', 'EmailController@accept'); Route::get('email/reject/{user_id}', 'EmailController@reject');
然后鏈接到您的電子郵件寺廟中的這些路線,例如:
<a href="{{ action('EmailController@accept', ['user_id' => $user->id ]) }}">Accept</a> <a href="{{ action('EmailController@reject', ['user_id' => $user->id ]) }}">Reject</a>
然后在該控制器中,您可以根據這些方法中的 id 解析用戶,并且可以執行您想要的任何邏輯。
請注意:由于這些鏈接需要公開訪問,因此使用 id 并不理想。您應該生成某種令牌來解析用戶。

TA貢獻1820條經驗 獲得超9個贊
更好的方法:
最好在用戶發布請求后使用名為“狀態”的列標志保存用戶請求,其中包含(“待處理”、“已批準”、“已拒絕”),然后向主管發送電子郵件
索引刀片
<form action="/sendRequest" method="post">
<input type="text">
<input type="text">
<button type="submit">Send</button>
</form>
網頁.php
Route::get('/sendRequest', 'MyController@sendRequest)
我的控制器.php
public function sendRequest(Request $request){
// UserRequest table should has column 'status' with default value 'Pending'
$userRequest = UserRequest::create($request->all());
Mail::to('[email protected]')->send(new ApprovalMail($userRequest));
return redirect('/');
}
電子郵件模板應僅通知主管對請求采取行動,并使用“采取行動”按鈕在瀏覽器中打開一個頁面供主管采取行動。
電子郵件模板.blade
<!-- User data displayed for example in a table -->
<a href={{ route('takeAction', $userRequest->id) }}>
<button> Take Action <button>
</a>
網頁.php
Route::get('/take-action/{requestId}', 'SupervisorController@takeAction')
->name('taleAction');
SupervisorController.php
public function takeAction($requestId){
$userRequest = UserRequest::find($requestId);
return view('take-action', [$userRequest]);
}
采取行動.blade
<-- User data displayed for example in a table -->
<form method='POST' action={{ route('takeActionPost', $userRequest->id) }}>
@csrf
<input type='hidden' name='action' value='Approved'>
<button type='submit'>Approve</button>
</form>
<form method='POST' action={{ route('takeActionPost', $userRequest->id) }}>
@csrf
<input type='hidden' name='action' value='Rejected'>
<button type='submit'>Rejected</button>
</form>
網頁.php
Route::post('/take-action/{requestId}', 'SupervisorController@takeActionPost')
->name('takaActionPost');
SupervisorController.php
public function takeActionPost(Request $request, $requestId){
$userRequest = UserRequest::find($requestId);
$userRequest->update(['status', $request->action]);
}
當然我在這里使用的名字很糟糕,我只是想解釋一下我的想法
- 3 回答
- 0 關注
- 140 瀏覽
添加回答
舉報