0

当我使用这样的选择选项时,如何存储名称值而不是id :

            <select type="text" name="jenis_hewan_id" id="jenis_hewan_id" class="form-control"> 
                    <option value="">Choose Animal</option>
                        @foreach ($jenisHewan as $data)
                            <option value="{{$data->id}}">{{$data->nama_jenis_hewan }}</option>
                        @endforeach
                </select>

存储时出现错误,如下所示:

SQLSTATE[22007]:无效的日期时间格式:1366 不正确的整数值:列的“Anjing” hewan_siaparas_hewans. jenis_hewan_id在第 1 行 (SQL: 插入ras_hewans( nama_ras_hewan, jenis_hewan_id) 值 (Sphynx, Anjing))

但是当我插入时<option value="{{$data->id}}",它可以工作,但它在我的数据库中存储为“id”值,而不是“名称”值,我该如何解决这个问题?

我的控制器:

     public function index()
    {
        $this->data['jenisHewan'] = JenisHewan::pluck('nama_jenis_hewan');
        $this->data['RasHewan'] = RasHewan::paginate(5);
        // $this->data['getParentOption'] = JenisHewan::where('id')->pluck('nama_jenis_hewan');
    
        $this->data['sortDataByName'] = RasHewan::latest('nama_ras_hewan');
    
        return view('admin.rashewan.ras-hewan-index',$this->data);
    }

   

 
public function store(Request $request)
{   

    $namaJenisHewan = (String)$request->jenis_hewan_id;

    $validator = $request->validate([
        'nama_ras_hewan'        => 'required|string|min:3',
        'jenis_hewan_id'        => 'required|string|',
        'parent_ras_jenis_hewan'=> 'string', 
    ], [
        'nama_ras_hewan.required' => 'Ras Hewan tidak boleh kosong',
        ]
    );

    

    $rasHewans = new RasHewan();
    $rasHewans->nama_ras_hewan = $request->nama_ras_hewan;
    $rasHewans->jenis_hewan_id = $namaJenisHewan;
    $rasHewans->parent_ras_jenis_hewan = $request->parent_ras_jenis_hewan;

    // $rasHewan = New RasHewan;
    // $rasHewan->parent_ras_jenis_hewan = $request->$getParentOption;
    // $rasHewan->save();


    RasHewan::create($validator);   
    
    return dd($validator);
    // if(validator()) {
    //     return redirect()->route('rashewan.index')
    //                      ->with('success', 'Data '.$request->nama_ras_hewan .' telah selesai dibuat.');
    // } else {
    //     return redirect()->route('rashewan.index')->with('error','Data gagal dibuat');
    // }
}
4

1 回答 1

0

问题出在控制器上。首先删除下面的这一行

 RasHewan::create($validator);   

然后RasHewan像下面这样修改

  $rasHewans = new RasHewan();
    $rasHewans->nama_ras_hewan = $request->nama_ras_hewan;
    $rasHewans->jenis_hewan_id = $namaJenisHewan;
    $rasHewans->parent_ras_jenis_hewan = $request->parent_ras_jenis_hewan;
     $rasHewans->save();
于 2021-05-31T16:14:41.800 回答