【发布时间】:2019-07-10 07:01:55
【问题描述】:
如何限制写入数据库的数据。
我正在尝试将银行详细信息映射到地区。我想将银行详细信息的输入限制为 1 个地区。
准确地说,用户应该只能为一个地区创建一个银行名称。当他们尝试创建新记录时,他们将被错误地处理,指出只应创建一个记录。
数据库表:
District
| id
| district_name
Bank
| id
| bank_name
| district_id
我曾想过将不在银行表中的地区的数据显示到选择菜单中。
我将如何在雄辩的关系中限制这一点,或者还有其他选择,
另一个选项是将结果限制为最新创建的银行 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'); }
【问题讨论】:
-
您的错误是您没有在选择下拉列表中获得所有银行?
-
你的foreach循环不对
-
也添加您的输入
-
对不起,如果问题让您感到困惑,如果该地区没有银行,我正在尝试添加新银行。我找到了一种方法来限制这一点,即不在选择下拉列表中显示该地区。 @KamalPaliwal
-
@ElnurIbrahim-zade 是的,代码是错误的,我试图表达我的想法
标签: php mysql database laravel eloquent