基于其他用户输入的Laravel验证输入

时间:2013-12-19 06:57:53

标签: php validation laravel-4

我有一个提交类别的表单。 (新的,编辑)

<form ... >
    <input type="text" name="name" />

    <select name="parent_id" >
        <option value="0" >Root</option>
        <option value="1" >Computer</option>
        <option value="..." >...</option>
    </select>
</form>

parent_id中的每个id都是数据库中的类别id,除了0,root;

我希望验证说:如果不是0,则将parent_id检查为类别表中的有效ID。(0是root,而不是数据库中的id)

如何使用laravel验证规则执行此操作。

2 个答案:

答案 0 :(得分:5)

我之前没有使用过。但请尝试以下。目前无法自我测试。

/* This is untested code  */

$validation->sometimes('parent_id', 'exists:categories', function($input)
{
    return $input->parent_id > 0;
});

/* This is untested code.*/

手动输入:http://laravel.com/docs/validation#conditionally-adding-rules

答案 1 :(得分:0)

$input = Input::only('dragon', 'parent_id', 'carrot');

$rules = [
    // your rules
];

if ( ! empty($input['parent_id']))
{
    $rules['parent_id'] = 'exists:categories';
}

// the normal validation stuff here

http://laravel.com/docs/validation#rule-exists