我在 laravel 中的表单上进行了一些验证,以确保用户声称的礼物是使用以下代码分配给他们的广告系列的礼物
'gift_id' => 'required|int|exists:gifts,campaign_id,' . Auth::user()->campaign->id,
但是在提交表单时,我收到以下错误
ValidatesAttributes中的 ErrorException.php第 721 行: 未定义的偏移量:1
有人可以帮我吗?
谢谢
我目前正在开发的 Laravel 应用程序开始抛出该异常。就我而言,问题略有不同。这是我的原始代码:
// ...
'extension_id' => [
'nullable',
'int',
Rule::exists('extensions,id'),
],
// ...
我将该,id
添加到表名中,希望在框架检查值是否存在时使用正确的列名。但是,它没有按预期工作。我从班上得到了IlluminateValidationConcernsValidatesAttributes
例外。
未定义的偏移量:1
经过一些尝试,我终于能够通过将两个参数传递给规则而不是单个字符串来克服错误:
Rule::exists('extensions', 'id'),
我知道这与OP的情况不同,但我想它可以帮助其他与我一样遇到相同问题的人。
您需要一个更自定义的存在规则。根据文档存在作为字符串只能处理特定列中特定输入值的存在:
'gift_id' => [
'required',
'int',
Rule::exists('gifts')->where(function ($query) {
$query->where('campaign_id', Auth::user()->campaign->id);
}),
],
或类似的东西。