database - 在插入数据库 Laravel 之前检查数据
问题描述
有一些问题,寻找一些建议如何在将数据插入数据库之前进行检查。我想将成员添加到团队中,但我需要检查它是否已经存在。否则不检查它的重复。用户可以属于同一团队+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>
解决方案
您必须检查 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();
}
推荐阅读
- python - 我有 PyQt4 GUI,我想以复选框的形式列出文件。但复选框仅显示目录中的最后一个文件
- c++ - Docker 构建抛出错误“致命错误:json/json.h:没有来自 ubuntu:14.04 的此类文件或目录”
- api - oAuth 返回 400 错误请求
- ios - 使用 NSNetServices 类设置多个 iOS 设备之间的通信
- reactjs - catching error on successful api post - Axios
- spring - Spring 集成 - 重试在异常情况下建立连接
- c# - 如何在 xunit 中模拟 Db 连接?
- javascript - Javascript - 仅保留给定所需属性列表的值
- java - Spring Batch 内存泄漏 - 使用 JpaItemWriter 将 CSV 保存到数据库
- android - 根据父宽度设置recyclerview子宽度相等