当字段与实体

时间:2016-12-09 18:09:30

标签: php laravel laravel-5.2

我在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实体?

1 个答案:

答案 0 :(得分:1)

我能够做到这一点:

$this->route('reason')->getKey()