【发布时间】:2019-09-06 12:07:37
【问题描述】:
所以我在我的通知电子邮件中添加了一个取消订阅按钮。到目前为止没有问题,直到我尝试执行它。我尝试在 Laravel 的订阅者控制器中添加一个取消订阅方法,但它似乎没有删除我表中的记录。当我尝试删除时,我的表中的记录没有被删除。相反,它会更新我的表格的列。
这是我的表格列:
|编号 |姓名 |电子邮件 |确认令牌 |取消订阅令牌 | created_at |删除_at |
它会在我删除记录时更新删除的列。也就是说,我要删除的记录仍然存在于我的表中,只是更新了删除的那一列。
这里可能出了什么问题?下面提供了代码。我正在使用 Laravel 5.5 和 PyroCMS 3.3。我认为 Pyro 不应该是这里的主要问题,因为这些代码更多地关注 Laravel。
在我的路上:
'subscribers/u/{token}/id/{id}' => [
'as' => 'sands.module.communications::subscribers.unsubscribe',
'uses' => 'Sands\CommunicationsModule\Http\Controller\SubscribersController@unsubscribe'
在我的控制器上:
public function unsubscribe(Request $request, MessageBag $messages, $token, $id)
{
$subscriber = SubscriberModel::whereStatus('active')->whereId($id)->whereUnsubscribeToken($token)->first();
if(empty($token) or empty($subscriber))
{
$messages->error(trans('sands.module.communications::addon.subscribers.invalid-confirmation'));
return redirect(url('/'));
}
$subscriber->delete();
$messages->success(trans('sands.module.communications::addon.subscribers.unsubscribed'));
return redirect(url('/'));
}
在我的通知电子邮件中:
public function toMail($notifiable)
{
//tender name
$tender = $this->title;
//tender url
$url = url($this->tender->site_link);
// unsubscribe url
$url_unsubscribe = route('sands.module.communications::subscribers.unsubscribe',
[
'token' => $this->subscriber->unsubscribe_token,
'id' => $this->subscriber->id]);
return (new MailMessage)
->markdown( 'mails.tender', [
'url' => $url,
'url_unsubscribe' => $url_unsubscribe,
'tender' => $tender] );
任何帮助将不胜感激。
【问题讨论】: