Сохранить <select>и <input>в моей базе данных в laravel - PullRequest
0 голосов
/ 22 мая 2019

У меня есть динамический выбор, который заполнен динамическим массивом из моей базы данных, мне нужно сохранить выбор этого выбора и сохранить этот выбор в другой таблице, для этого у меня есть такой внешний ключ:сохранить выбор этого выбора и сохранить этот выбор в другой таблице, для этого у меня есть внешний ключ, например:

public function up()
    {
    Schema::create('platoIngrediente', function (Blueprint $table) {
    $table->increments('id');
    $table->unsignedInteger('plato_id');
    $table->foreign('plato_id')->references('id')->on('platos');
    $table->unsignedInteger('ingrediente_id');
    $table->foreign('ingrediente_id')->references('id')->on('ingredientes');
    $table->double('cantidad', 8, 2);
    $table->timestamps();
        });
    }

другая таблица, в которой хранится запись (идентификатор и имя), которую яЯ показываю в списке выбора:

public function up()
    {
        Schema::create('platos', function (Blueprint $table) {
            $table->increments('id');
            $table->char('nombre',50);
            $table->double('valor', 8, 2);
            $table->timestamps();
        });
    }

Это мое мнение.

<form method="post" action="{{ route('platoingrediente.store') }}">
  @csrf

  <dd>Primero selecciona un plato en el sistema: </dd>
  <select name="plato_id" class="form-control">
  <option selected>[ SELECCIONA UN PLATO ]</option>
   @foreach( $platos as $plato )
  <option value="{{ $plato->id }}">{{ $plato->nombre }}</option>
 @endforeach
</select>


    <div class="text-center up">
      <label class="name">  Agregar Ingredientes a el plato </label>
  </div>

<table class="table table-striped">
  <thead>
    <tr>
      <td>ID</td>
      <td>Nombre del Ingrediente</td>
      <td>Proveedor</td>
      <td>Agregar</td>
      <td>Cantidad</td>
    </tr>
  </thead>
  <tbody>
      @foreach($ingredientes as $ingrediente)
      <tr>
          <td>{{$ingrediente->id}}</td>
          <td>{{$ingrediente->nombre}}</td>
          <td>{{$ingrediente->proveedor}}</td>
          <td>

              <label>
            <input type="checkbox" name="check" id="check" value="" onchange="javascript:showContent(this)" />
          </label>

          </td>

          <td>
            <div class="form-group row">
             <div class="col-sm-4">
               <div class="dv" style="display:none;">
            <input class="dvs" name="cantidad" type="number" />
            </div>
          </div>
          </div>
          </td>
      </tr>
      @endforeach

  </tbody>
</table>


</div>
<div class="up text-center">
  <button type="submit" class="btn btn-primary">Crear Plato</button>
</div>
</form>

, где у меня есть в качестве имени параметры, которые находятся в моей базе данных, но по какой-то причине неработа

Это мой метод .store.

class PlatoIngredienteController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
      $platos = Plato::all();
      $ingredientes = Ingrediente::all();
      $platoingredientes = PlatoIngrediente::all();
      return view('platoingrediente/index', compact('platos','ingredientes','platoingredientes'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $platos = Plato::all();
        $ingredientes = Ingrediente::all();
        $platoingredientes = PlatoIngrediente::all();
        return view('platoingrediente/create', compact('platos','ingredientes','platoingredientes'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

      $validatedData = $request->validate([
          'cantidad' => 'required|max:50',
          'id_plato' => 'required|max:50'
      ]);

      $platoingrediente = PlatoIngrediente::create($validatedData);
      return redirect('/platoingrediente')->with('success','El Plato se guardó correctamente en la base de datos');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\PlatoIngrediente  $platoIngrediente
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\PlatoIngrediente  $platoIngrediente
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\PlatoIngrediente  $platoIngrediente
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\PlatoIngrediente  $platoIngrediente
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

Вопрос .. Как мне сохранить выбранные и, если возможно, флажки ввода в моей базе данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...