#laravel
#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 AppNotificationsAppraisalAppraisalRespondentSubmit($details));
}
Я использую if 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])
Но, к удивлению, когда я отправил, я вижу этот маршрут в своем URL-адресе brouzer без параметра
http://localhost:8888/myapp/appraisal/appraisal_msf_externals/create
и я получил эту ошибку:
404 не найдено. К сожалению, страница, которую вы ищете, не найдена.
Как мне это решить?
Спасибо
Ответ №1:
route()
И action()
вспомогательные методы Laravel поддерживают параметры 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',
];
Комментарии:
1. Теперь он содержит параметр parries. Но все по-прежнему идет к appraisal_msf_externals , какое значение is_internal === 0 : > localhost:8888/myapp/appraisal/appraisal_msf_externals/создать/… Теперь у меня есть эта ошибка: > 500 Внутренняя ошибка сервера. Произошла внутренняя ошибка сервера. Если ошибка повторяется, пожалуйста, свяжитесь с администратором. Вернитесь
2. Теперь все содержит localhost:8888/myapp/appraisal/appraisal_msfs/create {id} Теперь у него есть параметр, например, 16,17 и т.д. Но все идет по одному и тому же URL.. Но сообщения об ошибке нет. Ни один из них не отправляется во внешний. Почему
3. @mikefolu можете ли вы сделать
dd($employeerespondents->pluck(is_internal))
и показать мне результат?