首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel 5.7中限制数据库的数据输入

如何在Laravel 5.7中限制数据库的数据输入
EN

Stack Overflow用户
提问于 2019-02-16 16:08:43
回答 1查看 464关注 0票数 2

我如何限制我写入数据库的数据。

我正在尝试将银行详细信息映射到地区。我希望将银行详细信息的输入限制在1个地区。

准确地说,用户应该只能创建一个地区的银行名称。当他们尝试创建一条新记录时,他们会被错误地处理,声明只应该创建一条记录。

数据库表:

代码语言:javascript
复制
District 
| id 
| district_name

Bank
| id 
| bank_name
| district_id

我曾想过将不在银行表中的地区的数据显示到一个选择菜单中。

我如何在雄辩的关系中限制这一点,或者有任何其他选择,

另一种选择是将结果限制为最新的创建银行Id。但我认为这不是一个好主意。

我试过的,

银行管理员,

使用Bank;

代码语言:javascript
复制
 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,

代码语言:javascript
复制
 <select name="district_option1" class="form-control  ml-5" id="">
                        @foreach ($bank1 as $banks1)
                        <option value="{{$banks1->id}}">{{$banks1->district_name}} </option>
                        @endforeach
                    </select> 

我的模型:

银行

代码语言:javascript
复制
public function districts(){
    return $this->belongsTo('App\Districts','district_id','id');
}

地区:

代码语言:javascript
复制
 public function bank(){
     return $this->hasOne('App\Bank','id','district_id'); }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-16 16:27:20

您可以使用unique验证来实现此目的。

代码语言:javascript
复制
    public function create(Request $request)
    {
        $request->validate([
           'district_id' => 'reuqired|unique:banks,district_id'
        ]);
     }

这里,您正在检查是否有该地区的任何记录。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54721119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档