La base de données se compose de deux tables; 1 table nommée projet et 1 table nommée Tâches. Un projet peut avoir plusieurs tâches. L'utilisation d'une liste déroulante multi-sélectionner, plusieurs éléments (utilisateurs) peuvent être sélectionnés et via un tableau envoyé à la base de données.
L'insertion de l'utilisateur fonctionne bien, mais l'insertion des identifiants du projet ne fonctionne pas correctement. 'null' est inséré au lieu de l'identifiant, reportez-vous au projet. P>
Je ne peux pas trouver où je manque quelque chose. Merci pour l'aide. P>
Sortie: P>
Route::post('/projects/{project}/tasks', 'ProjectTasksController@store');
3 Réponses :
Remplacez la méthode de la relation avec ci-dessous:
typo dans le modèle de projet: p> Project.PHP strud> p> public function store(Request $request, $project)
{
$task = new Task();
$data = $request->all();
foreach ($request->get('user') as $user){
$users[] = [
'project_id' => $project,
'user' => $user
];
}
dd($users);
@NEMO Quel est votre nom de tables? et dd the $ Demande-> tout () code> dans le contrôleur.
Mes noms de table sont des projets et des tâches. J'ai ajouté le résultat de la demande à ma question.
@Nemo est-ce emplacement_name code>? Pas
utilisateur code>? Et ça va à droite route?
Désolé, c'était la sortie d'une autre table. J'ai ajouté la route.
@Nemo S'il vous plaît ajouter des itinéraires.
Vous envoyez un identifiant de projet par URL d'action de formulaire, vous devez attraper cela dans la méthode du contrôleur.
<form action="/projects/{{$project->id}}/tasks" method="post" > @csrf <div class="form-group"> <label for="user">New User</label> <select multiple class="form-control" id="multiSelect" name="user[]"> <option value="Jan">Jan</option> <option value="Piet">Piet</option> <option value="Nele">Nele</option> <option value="Tom">Tom</option> <option value="Tony">Tony</option> </select> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">New user</button> </div> </form>
Je n'ai toujours pas encore autre chose à faire pour pouvoir envoyer le projet_id?
Merci pour l'entrée. Cela m'aide à résoudre le problème.
Je l'ai résolu grâce à l'entrée de @nagesh et @jinal. Utilisation de la liaison de modèle d'itinéraire et donnez l'ID avec la fonction Store aussi bien voir CODE:
public function store(Request $request, Event $event) { $location = new Location(); $data = $request->all(); foreach ($request->get('location_name') as $name){ $names[] = [ 'event_id' => $event->id, 'location_name' => $name ]; } dd($names);