【问题标题】:check data before insert to database Laravel在插入数据库 Laravel 之前检查数据
【发布时间】:2018-04-28 06:03:16
【问题描述】:

有一些问题,寻找一些建议如何在将数据插入数据库之前进行检查。我想将成员添加到团队中,但我需要检查它是否已经存在。否则不检查它的重复。用户可以属于同一团队+1000次。 我有一个名称为: Teammembersall 的表,我在其中添加存储 TeamId 、 UserId 数据(这是我可以识别哪个团队用户所属的方式)。 但是在我将用户添加到团队之前,我需要以某种方式检查该用户是否已经属于一个团队。不要复制它。 也许一些建议如何做到这一点?

这是我的控制器:

 public function insertUserToTeam(Request $req)
{
    $teamNameSelectBoxInTeamMembers = $req->input('teamNameSelectBoxInTeamMembers');
    $userNameSelectBoxInTeamMembers = $req->input('userNameSelectBoxInTeamMembers');

    $data = array(
        'TeamId' => $teamNameSelectBoxInTeamMembers,
        'UserId' => $userNameSelectBoxInTeamMembers
    );

    DB::table('teammembersall')->insert($data);

    session()->flash('msg', 'Successfully done!.');
    return redirect()->back();
}

这是我的视图刀片:

<div class="container" id="container-home-bottom">
    <div class="row">

        <div class="col-md-2">
        </div>

        <div class="col-md-4">
            <div class="card-header">Add User to Team</div>

            <div class="form-group">
                <p id="note-assist">Can find your team? <a href="{{ route('teamCreate') }}">Create new Team!</a></p>
                <form action="/insertUserToTeam" method="post">
                    {{csrf_field()}}

                    <div class="form-group" >
                        <label for="sel1">Select your team:</label>
                        <select class="form-control" id="sel2" name="teamNameSelectBoxInTeamMembers" required>
                            <option selected disabled hidden>Select a team</option>
                                @foreach ($team as $teams_each)
                                    <option value="{!! $teams_each->teamId !!}">{!! $teams_each->name !!}</option>
                                @endforeach

                        </select>
                        <br>

                        <label for="sel2">Select user:</label>
                        <select class="form-control" id="sel3" name="userNameSelectBoxInTeamMembers">
                            <option selected disabled hidden>Select user</option>
                            @foreach ($users as $user_each)
                                <option value="{!! $user_each->id !!}">{!! $user_each->name !!}</option>
                            @endforeach

                        </select>
                    </div>
                    <input id="add-team" type="submit" class="btn btn-primary btn-block" name="submitEditTeamCompany" value="Add to Team">
                </form>
                <br>
            </div>
        </div>

【问题讨论】:

    标签: database laravel duplicates


    【解决方案1】:

    您必须检查 userid 和 teamid 是否已经存在于该表中:

    public function insertUserToTeam(Request $req)
    {
        $teamNameSelectBoxInTeamMembers = $req->input('teamNameSelectBoxInTeamMembers');
        $userNameSelectBoxInTeamMembers = $req->input('userNameSelectBoxInTeamMembers');
    
    
        $data = array(
            'TeamId' => $teamNameSelectBoxInTeamMembers,
            'UserId' => $userNameSelectBoxInTeamMembers
        );
    
        $count = DB::table('teammembersall')->where('TeamId', $teamNameSelectBoxInTeamMembers)
                                    ->where('UserId',  $userNameSelectBoxInTeamMembers)
                                    ->count();
    
        if($count > 0){
            // This user already in a team
            //send error message
        }else{
            DB::table('teammembersall')->insert($data);
        }
    
        session()->flash('msg', 'Successfully done!.');
        return redirect()->back();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多