Laravel中电子邮件通知中的条件路由失败

时间:2020-09-07 21:55:08

标签: laravel

我正在尝试根据条件将电子邮件通知发送到其他路由

$employeerespondents = AppraisalRespondent::select('id','respondent_id','respondent_email', 'fullname')->where('employee_id', $userEmployee)->where('appraisal_identity_id', $identities->id)->where('email_sent',0)->where('is_active',1)->get();

                foreach ($employeerespondents as $employeerespondent)
                {        
                    $details = [
                        'sent_to' => $employeerespondent->respondent_id,
                        'sent_by' => $userId,
                        'user_id' => $userId,
                        'review_periond' => $reviewperiod,
                        'employee_respondent_email' => $employeerespondent->respondent_email,
                        'actionText' => 'View Multi-Source Feedback Form',
  'actionURL' => $employeerespondent->is_internal === 0 ? url('http://localhost:8888/myapp/appraisal/appraisal_msfs/create', ['id'=>$employeerespondent->id]) : url('http://localhost:8888/myapp/appraisal/appraisal_msf_externals/create', ['id'=>$employeerespondent->id]),
                        'notification_type' => 'MSF Request',
                        
                    ];
                      
                    Notification::route('mail', $details['employee_respondent_email'])
                                ->notify(new \App\Notifications\Appraisal\AppraisalRespondentSubmit($details));

                }  

我正在使用is_internal === 0,然后使用

url('http://localhost:8888/myapp/appraisal/appraisal_msfs/create', ['id'=>$employeerespondent->id])

其他

url('http://localhost:8888/myapp/appraisal/appraisal_msf_externals/create', ['id'=>$employeerespondent->id])

但是令人惊讶的是,当我提交时,我的brouser url上看到了没有参数的路由

http:// localhost:8888 / myapp / appraisal / appraisal_msf_externals / create

我收到此错误:

404找不到。抱歉,找不到您要查找的页面。

我该如何解决?

谢谢

1 个答案:

答案 0 :(得分:0)

Laravel的route()action()辅助方法支持URL参数。 url()帮助程序方法不允许您那样做。

因此,您可能需要在下面执行以下任一操作。

route('yourRoute.name', ['id'=>$employeerespondent->id]);

action('YourController@method', ['id'=>$employeerespondent->id]);

您使用了is_internal === 0,这意味着它必须具有相同的值和类型,您可以更改为is_internal == 0或在模型中进行cast

    protected $casts = [
        'is_internal' => 'integer',
    ];
相关问题