Dans le processus de développement à l'aide du framework Laravel, nous devons souvent modifier par lots les données de la base de données. Laravel nous offre un moyen pratique de répondre à cette exigence. Ce qui suit est une méthode couramment utilisée pour modifier des données par lots dans Laravel. Cet article présentera en détail le processus d'implémentation et d'utilisation du code.
Tout d'abord, nous devons écrire une route dans le fichier routes/web.php pour gérer la requête. Dans cette route, nous spécifions la méthode du contrôleur à laquelle accéder, où {ids} est un espace réservé utilisé pour correspondre au paramètre ID transmis par la page.
Route::post('posts/updateAll/{ids}', 'PostController@updateAll');
Dans le contrôleur PostController, nous avons écrit une méthode updateAll pour traiter la liste d'ID transmise par la page et les données à modifier. Dans cette méthode, nous appelons la méthode update définie dans le modèle Post pour mettre à jour les données.
public function updateAll($ids) { $ids = explode(',', $ids); $status = request('status'); Post::whereIn('id', $ids)->update(['status' => $status]); return back()->with('success', '更新成功'); }
Comme vous pouvez le voir, cette méthode contient deux paramètres : $ids et $status. Parmi eux, $ids est une liste d'identifiants passés par la page, séparés par des virgules. Nous utilisons la fonction d'explosion pour la convertir en tableau. $status est la valeur de statut à modifier. Nous obtenons cette valeur de statut via la fonction de requête.
Dans le processus de mise à jour des données, nous avons appelé la méthode WhereIn dans Laravel Eloquent ORM, qui est utilisée pour mettre à jour les données selon des conditions spécifiées. Parmi eux, 'status' => $status spécifie le champ et la nouvelle valeur que nous souhaitons mettre à jour.
Enfin, nous devons écrire un formulaire dans le fichier de vue pour soumettre la liste d'ID et la valeur de statut à modifier. Voici un exemple :
<form method="POST" action="{{ url('posts/updateAll/' . $ids) }}"> {{ csrf_field() }} <div class="form-group"> <label for="status">状态:</label> <select class="form-control" id="status" name="status"> <option value="1">已发布</option> <option value="0">未发布</option> </select> </div> <button type="submit" class="btn btn-primary">更新</button> </form>
Dans cette vue, nous soumettons une liste d'identifiants et la valeur de statut à modifier via un formulaire. L'attribut action du formulaire précise l'adresse de routage que nous venons de définir. Sous cette forme, nous utilisons la propre fonction csrf_field de Laravel pour générer un jeton afin d'empêcher les attaques CSRF.
À ce stade, nous avons terminé le développement d'une fonction simple de modification par lots de Laravel. De cette façon, nous pouvons mettre à jour rapidement et facilement les données de la base de données et améliorer l’efficacité du développement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!