Laravel 5从两个不同的表中填充表单

时间:2015-04-13 02:27:47

标签: php laravel-5

我在Laravel 5中创建CRUD应用程序时偶然发现了一个问题。在产品的编辑部分,我有2个输入,这些输入来自'产品' table和我有一个下拉列表,需要使用categories表中的数据填充。问题是我不知道如何打印下拉列表。我为两个输入生成了Form :: model,但是我被困在下拉列表中。

控制器

public function edit($id)
{
    $products_edit = products::find($id);

    return View::make('products.edit')->with('products_edit', $products_edit);
}

查看

{!! Form::model($products_edit, array('route' => array('products.update', $products_edit->id), 'method' => 'PUT')) !!}

<div class="form-group">
    {!! Form::label('name', 'Nume') !!}
    {!! Form::input('text', 'name', $products_edit->product_name, array('class' => 'form-control')) !!}
</div>

<div class="form-group">
    {!! Form::label('price', 'Cost') !!}
    {!! Form::input('number', 'price', $products_edit->product_price, array('class' => 'form-control')) !!}
</div>

<div class="form-group">
    {!! Form::label('category', 'Categorie') !!} <br />
    {!! Form::select('category', <!-- insert var here -->, array('class' => 'form-control') !!}
</div>

2 个答案:

答案 0 :(得分:3)

您可以在控制器上执行此操作:

public function edit($id)
{
    $products_edit = Product::findOrFail($id);
    $categories = Category::lists('name', 'id');

    return view('product.edit', compact('products_edit', 'categories'));
}

在视图中,您仍然可以使表单模型绑定:

{!! Form::model($products_edit, array('route' => array('products.update', $products_edit->id), 'method' => 'PUT')) !!}

要创建类别下拉列表,请尝试以下操作:

{!! Form::label('category_id', 'Category') !!}
{!! Form::select('category_id', $categories, null, ['class' => 'form-control']) !!}

答案 1 :(得分:0)

你可以做控制器:

public function edit($id)
{
    $products_edit = Product::find($id);
    $categories = Category::pluck('name', 'id');
    return view('product.edit', compact('products_edit', 'categories'));
}