具有多个表的Laravel RESTful编辑屏幕

具有多个表的Laravel RESTful编辑屏幕,laravel,blade,Laravel,Blade,我有3个用于存储业务详细信息的表。主表和电话号码表,因为企业可以将任意数量的电话号码附加到主表和电话号码表 表1-企业上市 表2-商务电话号码 表3-将表1链接到表2,如下所示 1 id int(11) No None AUTO_INCREMENT 2 listings_id int(11) No None 3 listingsphone_id int(11) No None 4

我有3个用于存储业务详细信息的表。主表和电话号码表,因为企业可以将任意数量的电话号码附加到主表和电话号码表

表1-企业上市 表2-商务电话号码 表3-将表1链接到表2,如下所示

1   id                  int(11) No  None    AUTO_INCREMENT  
2   listings_id         int(11) No  None        
3   listingsphone_id    int(11) No  None        
4   created_at          timestamp           
5   updated_at          timestamp           
我的控制器从数据库中提取数据并将其传递给视图

public function edit($id)
{
    // get the listing
    $listing = DB::table('listings')
        ->where('listings.id', '=', $id)
        ->first();

    $listingphone = DB::table('listings')
        ->leftjoin('listings_listingsphone_rel', 'listings.id', '=', 'listings_listingsphone_rel.listings_id')
        ->leftjoin('listingsphone', 'listings_listingsphone_rel.listingsphone_id', '=', 'listingsphone.id')
        ->where('listings.id', '=', $id)
        ->get();

    // show the edit form and pass the listing
    return View::make('admin.listings.edit')
        ->with('listing', $listing)
        ->with('listingphone', $listingphone);
}
然后,Blade需要在表单中创建多个输入行以输出到屏幕,存在的每行一个

{{ Form::model($listing, array('route' => array('admin.listings.update', $listing->id), 'method' => 'PUT')) }}

<div class="form-group">
    {{ Form::label('listingname', 'Company Name') }}
    {{ Form::text('listingname', null, array('class' => 'form-control')) }}
</div>


@foreach($listingphone as $key => $value)
<div class="form-group">
    {{ Form::label('phone', 'Phone number') }}
    {{ Form::text('phone', null, array('class' => 'form-control')) }}
</div>
@endforeach

{{ Form::submit('Edit the Listing!', array('class' => 'btn btn-primary')) }}

{{ Form::close() }}

我应该如何在Blade/controller中处理这种类型的设置?

我假设您在文本表单字段中遇到的问题与您在选中复选框时需要处理的问题是相同的。您有多个同名字段,但仍需要引用

为此,需要在表单字段名称上使用括号

您可以在此处看到与复选框相关的类似示例:


是否只使用数组作为输入?
<label for="phone">Phone</label>
<input class="form-control" name="phone" type="text" id="phone">

<label for="phone">Phone</label>
<input class="form-control" name="phone" type="text" id="phone">
    // store
        $listing = Listing::find($id);
        $listing->listings_company        = Input::get('listings_company'); 

        $listing->save();


        // store
        $listingphone = ListingPhone::find($id);

        foreach ($listingphone as $key => $value)
        {
            $listingphone->listings_phone        = Input::get('phone['$key']'); 
            $listingphone->save();
        }