Laravel 5.3のOne to Manyリレーションモデルから更新を保存したいが、このエラーがある。ここで 関係モデルからの更新を保存する方法Laravel 5.3
は私のJurnalsモデルです:FatalThrowableError in HasOneOrMany.php line 221: Type error: Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, instance of Illuminate\Database\Eloquent\Collection given, called in C:\xampp\htdocs\wismasejahtera\app\Http\Controllers\JurnalController.php on line 129
public function djurnals()
{
return $this->hasMany('App\DJurnals', 'jurnal_id');
}
そして、ここに私のDjurnalsモデルです:
public function jurnals()
{
return $this->belongsTo('App\Jurnals');
}
public function rekenings()
{
return $this->belongsTo('App\Rekenings');
}
そして、ここに私のコントローラである:
$jurnal = Jurnals::find($id);
$jurnal->no_jurnal = $request->no_jurnal;
$jurnal->tgl_jurnal = $tglJurnalFix;
$jurnal->keterangan = $request->keterangan;
$jurnal->save();
//ini Array
$kode_rekening = $request->kode_rekening;
for($i=0; $i<count($kode_rekening); $i++){
$djurnal = Djurnals::where('jurnal_id', $id)->get();
$djurnal->kode_rekening = $request->kode_rekening[$i];
$djurnal->keterangan_rekening = $request->keterangan_rekening[$i];
$djurnal->d_k = $request->d_k[$i];
$djurnal->jumlah = $request->jumlah[$i];
if($request->d_k[$i] == 'D'){
$saldoRekKas = Rekenings::where('kode_rekening', 'like', '111%')
->increment('saldo', $request->jumlah[$i]);
}
else{
$saldoRekKas = Rekenings::where('kode_rekening', 'like', '111%')
->decrement('saldo', $request->jumlah[$i]);
}
$jurnal->djurnals()->save($djurnal);
}
return Redirect::to('jurnal');
とエラーコントローラーのこの行にあります:
$jurnal->djurnals()->save($djurnal);
この方法で新しいjurnalとdjurnalを保存すると、正しく動作します。しかし、更新を保存しようとすると、エラーが表示されます。この更新データをデータベースに保存するにはどうすればよいですか?誰でも私を助けることができますか?
ああ、持っています。しかし、なぜ私に別のエラーが表示されますか?メソッドsaveは存在しません –
私の答えが更新されました。ループ内で 'get()'を 'first()'に置き換えてください – Sandeesh