php - 如何在 Laravel 5.7 中限制对数据库的数据输入

标签 php mysql database laravel eloquent

我怎样才能限制我写入数据库的数据。

我正在尝试将银行详细信息映射到地区。我想将银行详细信息的输入限制在 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/

相关文章:

php - 了解匿名函数 PHP

php - 登录问题 - 使用 mysql 中的散列密码检查输入密码?

php - 如何用php向数据库中插入多个数据

java - 使用水壶进行缩放,并发问题

database - 从数据库获取数据并填充数组的Golang抽象函数

sql - Oracle 11g 得到两个计数并将它们相除

php - TYPO3 v10 - 在 eID_include 中使用上下文 API 获取 feUser 对象

php - 将表单值插入 MySQL 表的 SQL 查询

PHP 删除查询不起作用,甚至没有收到任何错误消息

asp.net-mvc - 在 ASP.NET MVC 中创建模型