商品を戻したり編集したりするとき、選択ボックスにデータを保存するにはどうすればよいですか?ここでフォームを編集するときに選択ボックスのドロップダウンでデータを取得する - Laravel 5.2
は、親とサブカテゴリと私の形である:ここでは
<form role="form" method="POST" action="{{ route('admin.product.update', $product->id) }}">
{{ csrf_field() }}
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="form-group{{ $errors->has('category') ? ' has-error' : '' }}">
<label>Parent Category</label>
<select class="form-control" name="category" id="category" data-url="{{ url('api/dropdown')}}">
<option value=""></option>
@foreach($categories as $category)
<option value="{{ $category->id }}">{{ $category->category }}</option>
@endforeach
</select>
@if($errors->has('category'))
<span class="help-block">{{ $errors->first('category') }}</span>
@endif
</div>
<br>
</div>
<div class="col-xs-12 col-sm-6 col-md-6">
<div class="form-group{{ $errors->has('cat_id') ? ' has-error' : '' }}">
<label>Sub-Category Category</label>
<select class="form-control" name="cat_id" id="sub_category">
<option value=""></option>
</select>
@if($errors->has('cat_id'))
<span class="help-block">{{ $errors->first('cat_id') }}</span>
@endif
</div>
<br>
</div>
<div class="form-group col-md-12">
<button type="submit" class="btn btn-primary waves-effect waves-light">Edit Product</button>
</div>
</form>
は、結果がフォームを編集するために得るために、私の関数である。ここでは
/**
* Return the view to edit & Update the Products
*
* @param $id
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function editProduct($id) {
// Find the product ID
$product = Product::findOrFail($id);
// Get all Categories where parent_id = NULL
$categories = Category::whereNull('parent_id')->get();
// Return view with products and categories
return view('admin.product.edit', compact('product', 'categories'));
}
は私のカテゴリーのモデルであります私のカテゴリとサブカテゴリ:
class Category extends Model {
protected $table = 'categories';
protected $fillable = ['category'];
/**
* One sub category, belongs to a Main Category (Or Parent Category).
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function parent() {
return $this->belongsTo('App\Category', 'parent_id');
}
/**
* A Parent Category has many sub categories
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function children() {
return $this->hasMany('App\Category', 'parent_id');
}
/**
* One Category can have many Products.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function product() {
return $this->hasMany('App\Product', 'id');
}
}
0ここで
だけでできるようにする:
class Product extends Model {
protected $table = 'products';
protected $fillable = [
'product_name',
'price',
'cat_id',
'featured',
'brand_id',
];
/**
* One Product can have one Category.
*
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function category() {
return $this->hasOne('App\Category', 'id');
}
}
そして、ここでは私のカテゴリと商品テーブルが設定されている方法ですご存知のように、親カテゴリを選択すると、Ajaxコールが起動し、すべての親サブカテゴリが取得されます。私はこの質問にそれを含めていない。編集フォームの場合
@foreach($categories as $category)
<option value="{{ $category->id }}" @if(old('category')&&old('category')== $category->id) selected='selected' @endif >{{ $category->category }}</option>
@endforeach
:作成フォームの場合
$モデルに問題がありますが、何がそこに行くのか理解できませんが、トップは動作しますが、編集はできません – David
これはオプションの結果を保持する変数ですこの – LewiG