現在:公開中
save()ができません、Type error: Too few arguments to function Illuminate\Database\Eloquent\Model::setAttribute()というエラーが起きる
Laravel5.6で、foreachの中で、条件にあうデータがなければデータを新たに作成して挿入するといったことをしたいのですが、save()のところで毎回エラーが出てしまいます。
エラーが出ていても、作成しされたデータの1つ目だけはテーブルに登録されます。しかし、作成しなければいけないデータが全て揃うまで、
Type error: Too few arguments to function Illuminate\Database\Eloquent\Model::setAttribute()
というエラーが出続けるので改善したいです。
foreach($demotable as $demo){
if(!($ext = Exhibition::where('demo_id',$demo->demo_id)
->where('user_id',$user_id)
->exists())){
$exhibitiontable = new Exhibition;
$exhibitiontable->demo_id = $demo->demo_id;
$exhibitiontable->user_id = $user_id;
$exhibitiontable->likable = 0;
$exhibitiontable->wantmore = 0;
$exhibitiontable->user_visited = 0;
$exhibitiontable->save();
}
}
save()の直前で保存されるデータ内容を出力したところ、問題なくデータがreturnされていたので、データそのものはきちんと入っているようでしたが、それ以外のことはわかりません。
0
投稿者:通りすがりの人 / 投稿日:2018-05-25 21:06:29 / PV数:5693 / コメント数:7
コメント 7
2018-05-27 12:03:59
通りがりすの人
ユニークキーついてないですか?バリデーションで弾くほうが楽な気はしますがいかがでしょうか
2018-05-27 12:15:38
通りがりすの人
翻訳
型エラー:関数の引数が少なすぎます。\ Database \ Eloquent \ Model :: setAttribute()
2018-05-27 12:42:50
通りがりすの人
わかんないですね。。すみません
2018-05-27 12:44:55
通りがりすの人
解決したら教えてください!
2018-05-27 21:24:08
通りすがりの人
ユニークキーは現状ないです、今の所まだ解決せずです・・・
2018-05-27 21:54:05
通りすがりの人
解決しました、
原因はモデルに
が書かれていたことが原因のようです
消したら通りました。
2018-05-28 10:23:38
通りがりすの人
素晴らしいです!
お疲れ様でした!
ちょっと笑いましたw
コメント投稿