首页 > 解决方案 > 表单选择存储 ID 而不是 NAME

问题描述

我试图存储从mysql中检索到的选定值(名称),但它存储的是id而不是名称?有什么建议吗?

意见

{{ Form::select('dept',$departments->pluck('name'),null, ['class' => 'form-control','required','placeholder'=>'Select Department']) }}

路线

Route::get('/', function () {
    $departments=Department::pluck('name','id');
    return view('index',compact('departments'));
});

控制器

public function store(Request $request)
    {
        $this->validate(request(), [
            'fname' => 'required',
            'lname' => 'required',
            'staffId' => 'required',
            'email' => 'required|email',
            'dept' => 'required',
            'role' => 'required',
            'password' => 'required|confirmed'
        ]);
        $departments=Department::pluck('name','id');
        $departments->name = $request ->input('dept');
        $user = User::create(request(['fname','lname','staffId','email','dept','role','password']));

        auth()->login($user);

        return redirect()->to('/home2');
    }

模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Department extends Model
{
    protected $fillable=['name'];
    protected $table='department';

}

标签: mysqllaravel-5selectmodel

解决方案


解决了问题

<select class="form-control" id="dept" name='dept'>
@if($departments->count() > 0)
@foreach ($departments as $department)
<option value="{{ $department->id }}">{{$department->name}}</option>
@endforeach
@else
No Record Found
@endif  
</select>

下拉 https://ibb.co/bvR6rc4

mysql https://ibb.co/5FG2gWW


推荐阅读