질문을 삭제하지 말아주세요.!
 
1
0
-1


$time = \Carbon\Carbon::now();
$createelect = \App\Room::where('roomnum',$request->input('roomnum'))->first();
$createelect->electrical->create([
'year' => $time->year,
'month' => $request->input('month'),
'usage' => $request->input('usage'),
'paycheck' => 0,
]);
return "입력되었습니다";


컨트롤러에 이렇게 코딩됬는데


Method Illuminate\Database\Eloquent\Collection::create does not exist.

이런 오류가 나오는데 문법이 잘못된걸까요 ,.,, ?? 


roo 테이블과 electrical 테이블이 일대다로 관계되어있는데

electicrlcal 테이블에 정보를 넣을때 room_id를 자동으로 들어가게 할수있는 방법이뭘까요,,. ?

    CommentAdd your comment...

    2 answers

    1.  
      1
      0
      -1
      관계이름에 ()를 붙이면 queryBuilder를 호출할수 있습니다
      $createelect->electrical 대신
      $createelect->electrical() 을 사용하세요
      $time = \Carbon\Carbon::now();
      $createelect = \App\Room::where('roomnum',$request->input('roomnum'))->first();
      $createelect->electrical()->create([
      'year' => $time->year,
      'month' => $request->input('month'),
      'usage' => $request->input('usage'),
      'paycheck' => 0,
      ]);
      return "입력되었습니다";
        CommentAdd your comment...
      1.  
        1
        0
        -1

        $createelect→electrical 까지가 Collection 타입인가보네요. 아마 createelect 모델에서 hasMany 관계로 electrical 모델을 연결해 둔 게 아닐까 추정해 봅니다. 아래처럼 해 보시겠어요?

        $createelect→electrical→each(function ($electrical) use ($request, $time) {
            $electrical->create([...]);
        });
          CommentAdd your comment...