Laravel如何检查验证唯一表格两个字段

时间:2017-05-29 17:03:44

标签: laravel laravel-5 laravel-5.2 laravel-5.3

我有tableA,有2个字段

1. song_id
2. playlist_id

我想检查laravel验证独特的功能 示例:我已插入数据

id =>  1
song_id => 2
playlist_id => 34

然后我必须再次插入数据我想检查是否  playlist_id => 34已插入song_id = 2显示消息“已插入”,但如果playlist_id => 34插入song_id = 3允许插入

谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

这是需要应用的规则。使用样本数据进行测试,它可以根据需要运行。

use Illuminate\Validation\Rule;

$playlist_id = request('playlist_id');

$rules = [
    'song_id' => Rule::unique('tableA')->where(function ($query) use ($playlist_id) {
        $query->where('playlist_id', $playlist_id);
    })
];

样本条件

DB data
song_id     playlist_id
2           34
3           34

Request data
song_id     playlist_id     validation
2           34              fail
3           34              fail
4           34              success
2           35              success
3           35              success

示例测试代码

$data = [
    'song_id' => 2,
    'playlist_id' => 34,
];

$playlist_id = $data['playlist_id'];

$validator = \Validator::make($data, [
    'song_id' => Rule::unique('tableA')->where(function ($query) use ($playlist_id) {
        $query->where('playlist_id', $playlist_id);
    })
]);

if ($validator->fails()) {
    // handle failed validation
}