【发布时间】:2019-09-30 08:06:42
【问题描述】:
知道我的验证规则需要控制器设置的变量,我如何将验证逻辑放入 FormRequest 中?
public function store()
{
$commentable = Comment::getCommentable(request('input1'), request('input1'));
// I need this $commentable above in my validator below!
$this->validate(request(),[
'commentable_type' => 'required|string|alpha', // Post
'commentable_id' => 'required|uuid|exists:' . plural_from_model($commentable) . ',' . $commentable->getKeyName(),
'body' => 'required|string|min:1',
]);
// ...
}
这是我的实际代码:https://i.imgur.com/3bb8rgI.png
我想整理我的控制器的 store() 方法,将 validate() 移动到 FormRequest 中。但是,如您所见,它需要由控制器检索的 $commentable 变量。
我想我可以这样做,以便 FormRequest 也可以检索该变量本身,但这将是一个丑陋的重复(因为它还会探测数据库两次......)。所以这根本不是一个好的解决方案。
有什么想法吗?干杯。
【问题讨论】:
标签: laravel validation