我在FormRequest类中使用具有唯一验证规则的路由模型绑定
class ReasonUpdateRequest extends FormRequest
{
public function rules()
{
return [
'reason' => 'string|max:255|unique:reasons,reason,' . $this->reason->getKey(),
];
}
}
这是控制器方法
public function anyReasonUpdate(ReasonUpdateRequest $request, Reason $reason)
{
//
}
我一直能够通过执行$this->entityName
来访问受约束的模型。
问题在于我无法$this->reason->getKey()
访问原因实体的ID,因为Reason有一个名为reason
的字段。现在,不是$this->reason
指向模型,而是指向该字段中的值。我知道修复可能是重命名字段,但我不能轻易做到这一点。
我可以通过$reasonId = $this->segment(4);
来实现它,但这会将它与url的格式联系起来。
如何以更通用的方式从表单请求对象中访问Reason实体?
答案 0 :(得分:1)
我能够做到这一点:
$this->route('reason')->getKey()