我怎样才能限制我写入数据库的数据。
我正在尝试将银行详细信息映射到地区。我想将银行详细信息的输入限制在 1 个地区。
准确地说,用户应该只能为一个地区创建一个银行名称。当他们尝试创建新记录时,他们会收到错误消息,指出只应创建一条记录。
数据库表:
District
| id
| district_name
Bank
| id
| bank_name
| district_id
我想到了将银行表中没有的地区的数据显示到一个选择菜单中。
我将如何在 Eloquent 关系中限制它,或者还有其他选择,
另一种选择是将结果限制为最新创建的银行 ID。但我认为这是一个值得考虑的好主意。
我试过的,
银行财务总监,
使用银行;
public function create()
{
$districts = Districts::all();
$banks = Bank::all();
foreach($banks->districts as $bank)
$banks1 = $bank->district_name;
return($bank1);
// return view('bank-create',compact('districts'));
}
上面的代码是行不通的,我刚试了一下,没能通过。
我期待查询的结果传递给下面的选择,
<select name="district_option1" class="form-control ml-5" id="">
@foreach ($bank1 as $banks1)
<option value="{{$banks1->id}}">{{$banks1->district_name}} </option>
@endforeach
</select>
我的模型:
银行
public function districts(){
return $this->belongsTo('App\Districts','district_id','id');
}
地区:
public function bank(){
return $this->hasOne('App\Bank','id','district_id'); }
最佳答案
您可以为此目的使用unique
验证。
public function create(Request $request)
{
$request->validate([
'district_id' => 'reuqired|unique:banks,district_id'
]);
}
在这里您正在检查是否有该地区的任何记录。
关于php - 如何在 Laravel 5.7 中限制对数据库的数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54721119/