Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

j'ai controlleur machines avec une methode show qui menne vers une vue

public function show(Machine $machine)
    {
        abort_if(Gate::denies('machine_show'), Response::HTTP_FORBIDDEN, '403 Forbidden');

        $machine->load('machinePannes');

        return view('dashboard.machines.show', compact('machine'));
    }

ma vue

dans ma vue je fais une boucle pour avec mes machines et un lien qui mene vers la vue show avec l'id de la machine

 @foreach ($machines as $machine)
            <a href="{{ route('admin.machines.show', $machine->id) }}" class="tile-v2 alerte-bleu-bis popovers">
            <div class="tile-id-automate">{{$machine->num_horo}}</div>
              </a>
              @endforeach

vue show

das la vue show de la machine j'ai une lien en bas ou je peut creer une panne


<table class="table table-bordered table-striped">
                        <tbody>
                            <tr>
                                <th>
                                    id
                                </th>
                                <td>
                                    {{ $machine->id }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    Numero quartier
                                </th>
                                <td>
                                    {{ $machine->num_quartier }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    quartier
                                </th>
                                <td>
                                    {{ $machine->quartier }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    numero horodateur
                                </th>
                                <td>
                                    {{ $machine->num_horo }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    adresse
                                </th>
                                <td>
                                    {{ $machine->adresse }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    type
                                </th>
                                <td>
                                    {{ $machine->type }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    type tarif
                                </th>
                                <td>
                                    {{ $machine->type_tarif }}
                                </td>
                            </tr>
                            <tr>
                                <th>
                                    tarif
                                </th>
                                <td>
                                    {{ $machine->tarifs }}
                                </td>
                            </tr>
                        </tbody>
                    </table>
<div style="margin-bottom: 10px;" class="row">
            <div class="col-lg-12">
                <a class="btn btn-success" href="{{ route('admin.pannes.create') }}">
                    Ajouter Panne
                </a>
            </div>
        </div>

controlleur create panne

public function create()
    {
        abort_if(Gate::denies('panne_create'), Response::HTTP_FORBIDDEN, '403 Forbidden');
         $machines = Machine::all()->pluck('num_horo', 'id');

        $infos = Information::all()->pluck('info_name', 'id');

        $pieces = Piece::all()->pluck('pieces_name', 'id');

        return view('dashboard.pannes.create', compact('machines', 'infos', 'pieces'));
    }

vue create panne

dans le formulaire je fais une boucle je recupere tous les num machines dans une select

<select  class="form-control {{ $errors->has('machine') ? 'is-invalid' : '' }}" name="machine_id" id="machine_id">
                    @foreach($machines as $id => $machine)
                        <option value="{{ $id }}" {{ old('machine_id') == $id ? 'selected' : '' }}>{{ $machine }}</option>
                    @endforeach
                </select>

ce que je veux

je voudrai que depuis la vue vue show de la machine je recupere l'id de la machine direct et l'injecter dans le create dans devoir choisir le numero de machine dans un select je ne sais pas si j'ai pu bien m'exprimer

2 réponses


Salut,

Voila ta solution :

// Routes/web.php

Route::get('admin/pannes/{machine}', 'PanneController@create')->name('admin.pannes.create');

// Machines/Show.blade.php
...
            <div class="col-lg-12">
                <a class="btn btn-success" href="{{ route('admin.pannes.create', $machine) }}">
                    Ajouter Panne
                </a>
            </div>

// PanneController.php
...
public function create(Machine $machine)
{
        abort_if(Gate::denies('panne_create'), Response::HTTP_FORBIDDEN, '403 Forbidden');
         $machines = Machine::all()->pluck('num_horo', 'id');
        $infos = Information::all()->pluck('info_name', 'id');
        $pieces = Piece::all()->pluck('pieces_name', 'id');

        return view('dashboard.pannes.create', compact('machine', 'machines', 'infos', 'pieces'));
}
 ...

// Pannes/Create.blade.php

...
<select  class="form-control {{ $errors->has('machine') ? 'is-invalid' : '' }}" name="machine_id" id="machine_id">
    @foreach($machines as $m)
        <option value="{{ $m->id }}" {{ $m->id == $machine->id ? 'selected' : '' }}>{{ $m->num_horo }}</option>
    @endforeach
</select>
...

Normalement ca devrait bien t'aider :)

A+