2016-06-07 94 views
1

我在Laravel管理后台中添加了这种形式,它将新产品添加到数据库中。如何在Laravel的产品创建页面中显示类别

productCreate.blade.php

{{ Form::open(['files' => true]) }} 
<div class="form-group"> 
    <label for="title" class="control-block">Product title:</label> 
    {{ Form::text('title', null, ['class' => 'form-control']) }} 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Product description:</label> 
    {{ Form::textarea('description', null, ['class' => 'form-control']) }} 
    <span class="help-block">HTML is allowed.</span> 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Product price:</label> 
    {{ Form::text('price', null, ['class' => 'form-control']) }} 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Assign Product to Category:</label> 
    <select class="form-control"> 
     <option value="one">Category 1</option> 
     <option value="two">Category 2</option> 
     <option value="three">Category 3</option> 
     <option value="four">Category 4</option> 
     <option value="five">Category 5</option> 
    </select> 
</div> 

<div class="form-group"> 
    <label for="title" class="control-block">Product image:</label> 
    {{ Form::file('image', ['class' => 'form-control']) }} 
</div> 

<hr /> 

<button type="submit" class="btn btn-primary">Create new product</button> 

{{ Form::close() }} 

我的问题是如何显示从数据库中选择这个值/选项。我希望能够将产品分配给类别。我应该在哪里查询以及如何在视图中添加它们?

在admincontroller我对产品的创作和职能加载视图

public function productsCreate() { 
    return View::make('site.admin.products_create'); 
} 

我试图使它像这样

public function productsCreate() { 
    $categories = Categories::paginate(15); 
     return View::make('site.admin.products_create', [ 
      'categories' => $categories 
     ]); 
    //return View::make('site.admin.products_create'); 
} 

,但后来我得到消息

production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Cannot redeclare AdminController::productsCreate() ... 

那么我究竟能够如何查询数据库表类别并在表单中显示类别?

可能是因为我已经在管理控制器中有类别选择?

public function categories() { 
    $categories = Categories::all(); 
    return View::make('site.admin.categories', [ 
     'categories' => $categories 
    ]); 
} 

public function productsCreate() { 
//  $categories = Categories::paginate(15); 

     return View::make('site.admin.products_create', [ 
      'categories' => $categories 
     ]); 
    //return View::make('site.admin.products_create'); 
} 
+0

你的意思是,将产品分类? –

+0

我的意思是我想给这个表单显示类别。此表单用于添加产品。如何在此表单中显示类别? –

+0

看看我的回答如下,但分类分类?我建议你展示所有类别 –

回答

2

您通过在productsCreate功能的类别,且必须移除旧的productsCreate功能,你宣布了两遍:

public function productsCreate() { 
    $categories = Categories::get(); 
    return View::make('site.admin.products_create', [ 
     'categories' => $categories 
    ]); 
} 

对于HTML:

<div class="form-group"> 
<label for="title" class="control-block">Assign Product to Category:</label> 
<select class="form-control"> 
    @foreach($categories as $categorie) 
    <option value="{{ $categorie->id }}">{{ $categorie->name }}</option> 
    @endforeach 
</select> 

我希望能帮到你。

+0

感谢您的帮助。一切都很好! –

+0

你确定你的**类别表格不是空的吗? –

+0

这不是我的错误,因为这里'{{$ categorie-> id}}“> {{$ categorie-> name}}'应该是'{{$ categorie-> category_id}}”> {{$ categorie- > category_name}}'。 –

相关问题