relaciones muchos a muchos
This commit is contained in:
parent
2ac77a2af1
commit
4ed4a05488
|
|
@ -6,6 +6,7 @@ use Illuminate\Http\Request;
|
|||
use App\Models\Producto;
|
||||
use App\Models\Categorias;
|
||||
use App\Models\CodigoBarras;
|
||||
use App\Models\Etiquetas;
|
||||
class ProductoController extends Controller
|
||||
{
|
||||
public function index(Request $request){
|
||||
|
|
@ -28,11 +29,13 @@ class ProductoController extends Controller
|
|||
|
||||
public function create(){
|
||||
$categorias= Categorias::get();
|
||||
return view('productos.new',["categorias"=>$categorias]);
|
||||
$etiquetas= Etiquetas::get();
|
||||
return view('productos.new',["categorias"=>$categorias , "etiquetas" => $etiquetas]);
|
||||
}
|
||||
|
||||
public function store(Request $request){
|
||||
|
||||
|
||||
//return back()->withInput()->withErrors("El producto no se pudo guardar");
|
||||
$codigo_barras= new CodigoBarras();
|
||||
$codigo_barras->fill([
|
||||
'codigo' => $request->input('codigo_barras'),
|
||||
|
|
@ -48,13 +51,16 @@ class ProductoController extends Controller
|
|||
'codigo_barras_id' => $codigo_barras->id_codigo_barras,
|
||||
]);
|
||||
$producto->save();
|
||||
$producto->etiquetas()->attach($request->input('etiquetas'));
|
||||
$request->session()->flash('mensaje-success', 'El producto fue agregado.');
|
||||
return redirect('/productos');
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$producto = Producto::findOrfail($id);
|
||||
return view('productos.edit', ["prod"=>$producto]);
|
||||
$producto = Producto::with('categorias','codigo_barras')->findOrfail($id);
|
||||
$categorias= Categorias::get();
|
||||
$etiquetas= Etiquetas::get();
|
||||
return view('productos.edit', ["prod"=>$producto, "etiquetas"=>$etiquetas, "categorias"=>$categorias]);
|
||||
}
|
||||
|
||||
public function update(Request $request, $id){
|
||||
|
|
|
|||
|
|
@ -32,4 +32,14 @@ class Producto extends Model
|
|||
|
||||
return $this->belongsTo(CodigoBarras::class,'codigo_barras_id','id_codigo_barras');
|
||||
}
|
||||
|
||||
public function etiquetas()
|
||||
{
|
||||
return $this->belongsToMany(
|
||||
Etiquetas::class,
|
||||
'productos_etiquetas',
|
||||
'producto_id',
|
||||
'etiqueta_id'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,26 @@
|
|||
value="{{ old('precio', $prod->precio) }}" >
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<label for="categoria" >Categoria (*)</label>
|
||||
<select name="categoria" id="categoria" style="width:100%" required>
|
||||
@foreach($categorias as $cat)
|
||||
<option></option>
|
||||
<option value="{{$cat->id_categoria}}"
|
||||
{{old('categoria',$prod->categoria_id) == $cat->id_categoria ? 'selected': ''}}>
|
||||
|
||||
{{$cat->nombre}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<div class="form-group col-md-4">
|
||||
|
||||
<label for="nombre" class="form-check-label">Codigo Barras (*)</label>
|
||||
<input type="text" name="codigo_barras" id="codigo_barras" value="{{ old('codigo_barras',$prod->codigo_barras->id_codigo_barras) }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row justify-content-center align-items-center">
|
||||
|
|
@ -61,8 +81,20 @@
|
|||
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
|
||||
</script>
|
||||
@push('styles')
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||
<script>
|
||||
$('#categoria').select2({
|
||||
placeholder:"Seleccione un categoria"
|
||||
});
|
||||
|
||||
$('#etiquetas').select2({
|
||||
placeholder:"Seleccione Etiquetas"
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
|
|
|||
|
|
@ -60,7 +60,25 @@
|
|||
<input type="text" name="codigo_barras" id="codigo_barras" value="{{ old('codigo_barras') }}" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<label for="etiquetas"> Etiquetas</label>
|
||||
<select name="etiquetas[]" id="etiquetas" style="width:100%" multiple required>
|
||||
<option></option>
|
||||
@foreach($etiquetas as $etiq)
|
||||
<option value="{{$etiq->id_etiqueta}}"
|
||||
{{in_array($etiq->id_etiqueta,old('etiquetas',[])) ? 'selected' : ''}}
|
||||
>
|
||||
{{$etiq->nombre}}
|
||||
|
||||
@endforeach
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</br>
|
||||
|
|
@ -88,5 +106,10 @@
|
|||
$('#categoria').select2({
|
||||
placeholder:"Seleccione un categoria"
|
||||
});
|
||||
|
||||
$('#etiquetas').select2({
|
||||
placeholder:"Seleccionar etiquetas"
|
||||
});
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
|
|
|||
|
|
@ -35,6 +35,14 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
<label for="etiquetas"> Etiquetas</label>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<legend></legend>
|
||||
<div class="row justify-content-center align-items-center">
|
||||
|
|
@ -43,4 +51,17 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@endsection
|
||||
@push('styles')
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
|
||||
<script>
|
||||
$('#etiquetas').select2({
|
||||
placeholder:"Seleccione Etiquetas"
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user