首页 > 解决方案 > SQLSTATE [42S22]:未找到列:1054“字段列表”中的未知列

问题描述

我尝试使用 foreach 循环将多个数据存储在“jawapan”表中。该循环基于来自“soalan”表的“soalan_id”。这是我的错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'status_pengesahan' in 'field list' (SQL: insert into soalan( status_pengesahan, soalan_id, sesi_id, agensi_id, updated_at, created_at) 值 (belum_disahkan, 2, 4, 3, 2019-01 -01 01:47:00, 2019-01-01 01:47:00))

我的错误:

在此处输入图像描述

我的模型:

class Jawapan extends Model
{
protected $table = 'jawapan';
protected $primaryKey = 'jawapan_id';
protected $fillable = ['jawapan', 'status_pengesahan', 'soalan_id', 'sesi_id', 'agensi_id'];

public function soalan()
{
    return $this->belongsTo('App\Soalan', 'soalan_id', 'soalan_id');
}

public function sesi()
{
    return $this->belongsTo('App\Sesi', 'sesi_id', 'sesi_id');
}

public function agensi()
{
    return $this->belongsTo('App\Agensi', 'agensi_id', 'agensi_id');
}

}

我的观点:

<div class="modal fade" id="tambah_sesi">
  <div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    <h4 class="modal-title">Pendaftaran Sesi</h4>
  </div>
  <div class="modal-body">
    {!! Form::open(['method' => 'POST', 'url' => '/tambah_jadul_baru', 'class' => 'form-horizontal']) !!}

        <div class="form-group{{ $errors->has('agensi_id') ? ' has-error' : '' }}">
            {!! Form::label('agensi_id', 'Agensi/PTJ') !!}
            {!! Form::select('agensi_id', $agensi, null, ['id' => 'agensi_id', 'class' => 'form-control', 'required' => 'required', 'single']) !!}
            <small class="text-danger">{{ $errors->first('agensi_id') }}</small>
        </div>
        <div class="form-group{{ $errors->has('sesi_id') ? ' has-error' : '' }}">
            {!! Form::label('sesi_id', 'Sesi') !!}
            {!! Form::select('sesi_id', $sesi, null, ['id' => 'sesi_id', 'class' => 'form-control', 'required' => 'required', 'sesi']) !!}
            <small class="text-danger">{{ $errors->first('sesi_id') }}</small>
        </div>

  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Tutup</button>
    <button type="submit" class="btn btn-primary">Simpan</button>
  </div>
  {!! Form::close() !!}
</div>

我的控制器:

public function store(Request $request)
{        
    $soalan_id = Soalan::select('soalan_id')->get('soalan_id');

    foreach ($soalan_id as $question) {

        $Soalan = New Soalan();

        $Soalan->status_pengesahan = "belum_disahkan";
        $Soalan->soalan_id = $question->soalan_id;
        $Soalan->sesi_id = $request->sesi_id;
        $Soalan->agensi_id = $request->agensi_id;

        $Soalan->save();

    }



    $agensi_sesi = Agensi::find($request->agensi_id);
    $agensi_sesi->sesi()->attach($request->sesi_id);
    // dd($agensi_sesi);
    // $sesi = Agensi::find(1)->sesi()->get();
    // dd($sesi);
    return redirect('/list_jadual');

}

标签: laravel

解决方案


我尝试使用 foreach 循环将多个数据存储在“jawapan”表中。

但这与您的错误消息中的 SQL 不匹配:

SQL:插入到 soalan (status_pengesahan, soalan_id, sesi_id, agensi_id, updated_at, created_at) 值 (belum_disahkan, 2, 4, 3, 2019-01-01 01:47:00, 2019-01-01 01:47:00) )

在那里,您将数据存储到soalan表中,而不是jawapan表中。如果jawapanstatus_pengesahan列而soalan没有,则错误消息是完全正确的。该列在 上未知soalan

也许尝试

foreach ($soalan_id as $question) {

    $Jawapan = New Jawapan();

    $Jawapan->status_pengesahan = "belum_disahkan";
    $Jawapan->soalan_id = $question->soalan_id;
    $Jawapan->sesi_id = $request->sesi_id;
    $Jawapan->agensi_id = $request->agensi_id;

    $Jawapan->save();

}

推荐阅读