簡體   English   中英

綁定多個表單模型以在laravel中編輯

[英]Binding multiple form model to edit in laravel

我是laravel的新手。 可能是問題沒有匹配問題。 問題是。 我有數據庫表一對多像酒店和房間。 一個酒店可以有多個房間。 我的目標是:

 public function edit($id) {
    echo $id;
    // get the hotel
    $data['hotel'] = Hotel::find($id);
    $data['rooms'] = Room::where("hotelId", $id)->get();

    // show the edit form and pass the hotel
    return view('include.middle')->nest('main', 'hotel.edithotel', $data);
}

我從房間和酒店的桌子上獲取數據。 毫無疑問,可以有多個房間。

在視野中。 我想獲取酒店和房間的所有數據。

editHotel.blade.php

 //for hotel
 {{ Form::model($hotel, array('route' => array('hotel.update', $hotel->hotelId), 'method' => 'PUT')) }}

 //for room.  I want to run this in loop so that I can get data to edit for multiple rooms.
 {{ Form::model($rooms, array('route' => array('room.update', $rooms->roomId), 'method' => 'PUT')) }}

但我得到的錯誤是

 Undefined property: Illuminate\Database\Eloquent\Collection::$roomId (View: /Users/apple/hotelbooking/resources/views/hotel/edithotel.blade.php)

我在房間和酒店模型中設置了主鍵。

數據庫架構。

  Hotel
  hotelId  | name             | address
  1        | example hotel       somewhere

  Room
  roomId   | hotelId   |  name  | price 
  1           1           Delux    $300
  2           1           Economy  $100

主鍵沒有任何問題或laravel有任何問題。 問題是你像laravel所說的那樣,試圖從COLLECTION中獲取一個未定義的屬性。

一個集合是一個Laravel對象,它有點像一個數組(你可以在這里閱讀更多的集合)

現在要解決你的問題,你唯一需要做的就是放

{{ Form::model($rooms, array('route' => array('room.update', $rooms->roomId), 'method' => 'PUT')) }}

在foreach循環中。

@foreach($rooms as $room)
{{ Form::model($room, array('route' => array('room.update', $room->roomId), 'method' => 'PUT')) }}
@endforeach

這樣您將使用對象而不是集合

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM