微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel 5验证唯一的传递变量占位符

是否有可能将唯一的验证方法传递给where变量的子句?

下面是一个例子:

在我的模型中,我有我的验证规则.

public static $rules = array(
    'amount'    => 'required|numeric',
    'user_id'   => 'required|exists:users,id',
    'cause_id'  => 'required|exists:causes,id',
    'circle_id' => 'required|unique:donations,circle_id,NULL,id,cause_id,:cause_id',
);

然后在我的控制器中运行:

$input = array(
    'amount'    => Input::get('amount'),
    'user_id'   => $this->currentUser->id,
    'cause_id'  => $cause->id,
    'circle_id' => Input::get('circle_id')
);

$validator = Validator::make($input, Donation::$rules);

如何在不连接验证规则的情况下获取cause_id?正如您在rules数组中看到的那样,我尝试了PDO样式:占位符,但查询执行如下:
选择count(*)作为来自捐款的汇总,其中circle_id =’500’和cause_id =’:cause_id’

解决方法:

在你的情况下我的建议是将你的规则包装在一个函数中:

public static function rules($causeId)
{
    return array(
        'amount'    => 'required|numeric',
        'user_id'   => 'required|exists:users,id',
        'cause_id'  => 'required|exists:causes,id',
        'circle_id' => 'required|unique:donations,circle_id,NULL,id,cause_id,' . $causeId,
    );
}

然后调用你的函数,传入你的值:

$validator = Validator::make($input, Donation::rules($yourCauseId));

我过去遇到过这样的问题,我也想在其他字段的规则中使用其他字段的值.这往往是解决问题的最简单方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐