Как восстановить динамическое значение входа c? - PullRequest
0 голосов
/ 27 февраля 2020

В моей форме есть таблица, которая позволяет мне добавлять динамические c поля ввода через jquery, первоначально эти динамические c поля были входным текстом, теперь они стали выбором ввода. Эта таблица позволяет мне записывать информацию об инструментах, используемых для изготовления детали. Моя проблема заключается в том, что при редактировании части, которая уже была создана, как вы можете видеть на изображении

tools

на изображении, можно увидеть, что для В первых двух инструментах фигура связана с идентификатором инструмента (существует связь отношениеToMany между моделью фигуры и инструментом), а для третьего инструмента вы можете увидеть ранее зарегистрированные значения.

Это моя таблица piece_tool выглядит в красном поле:

tabla piece_tool

Здесь вы можете увидеть вышеупомянутое, в моей форме показано, что для ** штуки с id7 вы можете видеть, что в полях Dynami c вы получаете идентификатор связанного инструмента, в данном случае это id9 и id10. **

таблица инструментов:

table tools

Что может происходить?

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

Вот как у меня это было для входного текста:

 <tbody>
                        @forelse ($piece->tools as $p)  
                        <tr> 
                            <input name="addmore[{{$loop->index}}][insert_id]" value="{{ $p->insert->id }}" hidden/>
                            <input name="addmore[{{$loop->index}}][tool_id]" value="{{ $p->id }}" hidden/>

                            <td><input type="text" name="addmore[{{$loop->index}}][position]" value="{{ $p->position }} " placeholder="Posición" class="form-control"/></td> 
                            <td><input type="text" name="addmore[{{$loop->index}}][code_tool]" value="{{ $p->code_tool }}" placeholder="Herramienta"class="form-control"/></td> 
                            <td><input type="text" name="addmore[{{$loop->index}}][code_insert]" value="{{ $p->insert->code_insert }}" placeholder="Inserto" class="form-control"/></td> 
                            <td><input type="text" name="addmore[{{$loop->index}}][quality]" value="{{ $p->insert->quality }}" placeholder="Calidad" class="form-control"/></td> 

                        </tr> 
                        @empty
                            <td colspan="4"></td>
                            <td><button type="button" class="btn btn-danger remove-tr"><i class="fa fa-trash "></i></button></td>
                        @endforelse 
                    </tbody>

Вот как они перешли от ввода текста для выбора: (фрагмент)

<tbody>
                        @forelse ($piece->tools as $p)  
                        <tr> 
                            <input name="addmore[{{$loop->index}}][insert_id]" value="{{ $p->insert->id }}" hidden/>
                            <input name="addmore[{{$loop->index}}][tool_id]" value="{{ $p->id }}" hidden/>
                            <td>
                                <select name="addmore[{{$loop->index}}][position]" id="position" class="form-control select2">
                                    <option value=""></option>
                                    @foreach ($tools as $tool)          
                                        <option value="{{ $tool->id }}"
                                        {{ old('position', $p->id) == $tool->id ? 'selected' : ''}}>
                                        {{ $tool->position }}</option>                     
                                    @endforeach  
                                </select>
                            </td>   
                            <td>
                                <select name="addmore[{{$loop->index}}][code_tool]" id="code_tool" class="form-control select2">
                                    <option value=""></option>
                                    @foreach ($tools as $tool)          
                                        <option value="{{ $tool->id }}"
                                        {{ old('code_tool', $p->id) == $tool->id ? 'selected' : ''}}>
                                        {{ $tool->code_tool }}</option>                     
                                    @endforeach  
                                </select>
                            </td> 

Это мой метод редактирования: (с 'tools' я получаю все инструменты), но я думаю, что его можно сравнить с $ piece, так как я привожу отношения с инструментами

public function edit($id)
    {        
        $piece  = Piece::with('gag', 'tools')->findOrFail($id); 

        // $this->authorize('update', $piece);  

        return view('admin.pieces.partials.form', [         

            'part_piece'    => Piece::pluck('part_piece', 'part_piece'), 
            'denomination'  => Piece::pluck('denomination', 'denomination'), 

            'tools'     => Tool::all(),

            'number_gag'    => Gag::pluck('number_gag', 'number_gag'),         
            'type_gag'      => Gag::pluck('type_gag', 'type_gag'),           
            'category_gag'  => Gag::pluck('category_gag', 'category_gag'), 

            'part_program'  => Program::pluck('part_program', 'part_program'),                      
            'piece'         => $piece
        ]);  
    }

метод обновления

               $piece  = Piece::with('tools','gag')->findOrFail($id);              

                Log::debug($request->all());
                // $this->authorize('create', new Piece);                               

                $addmore = $request->addmore;
                $arrTool = [];

                foreach($addmore as $add)
                {                                 
                    $insert = Insert::updateOrCreate(
                        [ 'id' => array_key_exists('insert_id', $add)? $add['insert_id']: null ],
                            [
                                'code_insert' => $add['code_insert'],
                                'quality' => $add['quality']
                            ]
                        );

                    $tools = $insert->tools()->updateOrCreate(
                        [ 'id' => array_key_exists('tool_id', $add)? $add['tool_id']: null ],
                            [
                                'position' => $add['position'],
                                'code_tool' => $add['code_tool'],
                                'insert_id' => $insert->id
                            ]
                        );

                    $arrTool[] = $tools->id;     
                }    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...