Bonjour à tous,
Je n'arrive pas à comprendre d'où vient mon erreur...
Ce que je fais
J'ai 2 tables : 1 table "bilan" et 1 table "troubles". Lorsque je valide mon formulaire "troubles" j'ai l'erreur "Method troubles does not exist"
Mes modèles :
Bilan
public function troubles()
{
return $this->hasMany(Trouble::class);
}
Trouble
public function bilan()
{
return $this->belongsTo(Bilan::class);
}
}
Mon controller TroubleController :
public function store(Request $request)
{
$dataInput = $request->all();
$bilan = Bilan::all();
$trouble = $bilan->troubles()->create($dataInput);
return view('bilans.show')->with('bilan', $bilan);
}
Ma vue troubles.index
<div class="col-md-12"><br>
<form class="form-horizontal" role="form" method="POST" action="/troubles">
{{ csrf_field() }}
<div class="form-group row">
<label for="trouble_categorie" class="col-md-4 control-label">Catégorie du trouble</label>
<div class="col-md-6">
<select id="trouble_categorie" type="dropdown-toggle" class="form-control" name="trouble_categorie" value="" required>
<option value="choisir" selected>Choisir</option>
<option value="articulaire">Articulaire</option>
<option value="musculaire">Musculaire</option>
<option value="respiratoire">Respiratoire</option>
<option value="cardiaque">Cardiaque</option>
<option value="tonus">Tonus</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="int_trouble" class="col-md-4 control-label">Intensité du trouble</label>
<div class="col-md-6">
<select id="trouble_intensite" type="dropdown-toggle" class="form-control" name="trouble_intensite" value="{{ old('trouble_intensite') }}" required autofocus>
<option value="choisir" selected>Choisir</option>
<option value="tfaible">Très faible</option>
<option value="faible">Faible</option>
<option value="normale">Normale</option>
<option value="elevee">Elevée</option>
<option value="televee">Très élevée</option>
</select>
</div>
</div>
<button type="button" class="btn btn-default" data-dismiss="modal">Fermer</button>
<button type="submit" class="btn btn-primary">Enregistrer</button>
</form>
</div>
Ce que je veux
Dans mon controller, si je remplace Bilan::all(); par Bilan::first(); ça marche, la validation se fait et ma table troubles se peuple, mais avec le 1er bilan_id et non celui en cours (c'est celui là que je veux récupérer)...
J'ai beau me creuser la tête, je ne comprends pas ce qui cloche...
Votre aide me serait d'une grande utilité !