且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-12-12 14:28:44

这是需要应用的规则.经过样本数据测试,可以正常工作.

This is the rule that need to apply. Tested with sample data and it works as desired.

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
}