如何 return 处理表单的服务中的重定向
How to return a redirect within Service which processes a form
我正在开发一项服务功能,目的是处理用于验证电子邮件地址的表单。作为电子邮件地址身份验证完整性的一部分,我将临时密码设置为超时。
第 1 步:用户提供他们的帐户 # 和临时密码
第 2 步:验证器验证这两个都是正确的。
第 3 步:将表单传递给服务进行处理。此处理的第一步是检查临时密码是否已超时。如果临时密码超时,我想将用户重定向到一个可以请求新临时密码的表单。我创建了这个 "if / then / else" 来引起重定向:
} else {
return ['flash' => 'Password Timed Out' , $result['redirect'] => '/subscription-center-temporary-password-resend'];
}
我收到的错误是
Fatal error: Cannot use object of type Database\Entity\Member\Membership as array
$result 是分配给用于检索临时密码过期字段的数据库查询的变量。
当我将 "return" 更改为
return ['flash' => 'Password Timed Out' , 'redirect' => '/subscription-center-temporary-password-resend'];
表单提交到用于调出帐户身份验证表单的重定向(用户提供自己的密码并设置帐户首选项)。我收到错误消息:
SyntaxError: unterminated string literal
处理 request/response(包括重定向)是一个控制器问题,不应该在您的服务层中。
您可以在您的服务中抛出异常(每种故障类型一个)并在您的控制器中捕获它们,然后适当地重定向。
另一种方法是 return 服务方法中的一个值,该值标识故障类型并在控制器中进行适当处理。
我个人比较喜欢异常方法。
您收到的错误是由于尝试将数据库结果(Membership class 的实例)用作数组。
您显示的语法错误看起来像 JavaScript,您没有提供足够的上下文来提供建议
我正在开发一项服务功能,目的是处理用于验证电子邮件地址的表单。作为电子邮件地址身份验证完整性的一部分,我将临时密码设置为超时。
第 1 步:用户提供他们的帐户 # 和临时密码
第 2 步:验证器验证这两个都是正确的。
第 3 步:将表单传递给服务进行处理。此处理的第一步是检查临时密码是否已超时。如果临时密码超时,我想将用户重定向到一个可以请求新临时密码的表单。我创建了这个 "if / then / else" 来引起重定向:
} else {
return ['flash' => 'Password Timed Out' , $result['redirect'] => '/subscription-center-temporary-password-resend'];
}
我收到的错误是
Fatal error: Cannot use object of type Database\Entity\Member\Membership as array
$result 是分配给用于检索临时密码过期字段的数据库查询的变量。
当我将 "return" 更改为
return ['flash' => 'Password Timed Out' , 'redirect' => '/subscription-center-temporary-password-resend'];
表单提交到用于调出帐户身份验证表单的重定向(用户提供自己的密码并设置帐户首选项)。我收到错误消息:
SyntaxError: unterminated string literal
处理 request/response(包括重定向)是一个控制器问题,不应该在您的服务层中。
您可以在您的服务中抛出异常(每种故障类型一个)并在您的控制器中捕获它们,然后适当地重定向。
另一种方法是 return 服务方法中的一个值,该值标识故障类型并在控制器中进行适当处理。
我个人比较喜欢异常方法。
您收到的错误是由于尝试将数据库结果(Membership class 的实例)用作数组。
您显示的语法错误看起来像 JavaScript,您没有提供足够的上下文来提供建议