web-dev-qa-db-fra.com

Comment effectuer une opération de suppression sur un modèle?

Venant d'une Ruby sur Rails expérience où vous chargez la console Rails pour supprimer un utilisateur ou tous les utilisateurs. I suis nouveau sur Laravel 5 et je cherche quelque chose de similaire pour supprimer un utilisateur déjà dans la base de données sqlite3.

Je vois où les gens parlent de User::find(1)->delete(); pour supprimer un utilisateur mais où mettre cela et l'exécuter? Existe-t-il une console pour effectuer une tâche de suppression dans? Je voudrais savoir comment supprimer un utilisateur sans faire tomber la table. Je ne souhaite pas effectuer de suppression logicielle.

16
Sylar

Vous pouvez mettre ce code par exemple dans le contrôleur.

Vous pouvez utiliser

$user = User::find($id);    
$user->delete();

si vous n'utilisez pas le trait SoftDeletingTrait ou

$user = User::find($id);    
$user->forceDelete();

si vous le faites, et que vous voulez vraiment supprimer l'utilisateur de la base de données, pas simplement le cacher des résultats.

Plus vous pouvez lire sur page Laravel

30
Marcin Nabiałek

dans Laravel 5 vous pouvez utiliser la méthode destroy.

$user->destroy($id);

et, bien sûr, vous avez une ligne de commande pour le faire.

$ php artisan tinker

et vous pouvez exécuter par exemple

>> $var = new App\User;
>> $user= $user->find($id);
>> $user->destroy();
7
Jeff

Plusieurs façons de procéder.

Si votre contrôleur définit l'utilisateur comme un argument:

public function destroy(User $user) 
{
    return $user->delete();
}

Vous pouvez également supprimer n'importe quel utilisateur par $ id:

User::destroy ($id);

En supposant que vous enveloppez ces routes avec une certaine sécurité.

Modifier: Orthographe corrigée

6
Alex Cook

Vous pouvez utiliser l'exemple ci-dessous pour supprimer des données avec plusieurs paramètres ......

> 
> tableName::where('field_1','=',$para1)
>               ->where('field_2,'=',$para2)
>               ->delete();
3
Shanka SMS