IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Comment ajouter une colonne de type VACHAR null et lui attribuer une Valeur par Défaut dans ma Table users ?


Sujet :

Laravel PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut Comment ajouter une colonne de type VACHAR null et lui attribuer une Valeur par Défaut dans ma Table users ?
    Bonjour.

    J'ai deux gros problème et j'espère trouver de l'aide auprès de vous:

    1 - En fait, j'ai installé le Composant VOYAGER qui gère la partie Backend de Laravel. Mais depuis, quand j'essaie de faire un php artisan migrate:refresh, je reçois une erreur du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 1 no such table: users (SQL: alter table "users" add column "avatar" varchar null default 'users/default.png')
    Je comprends à travers cette erreur qu'on me demande d'Ajouter dans ma Table "users", une colonne "avatar", de type VACHAR null avec pour valeur par défaut 'users/default.png'.

    Alors, je voulais savoir comment ajouter une nouvelle une colonne "avatar", de type VACHAR null avec pour valeur par défaut 'users/default.png' ???

    Que dois-ajouter à dans ma Migration "users": $table->.......... ???

    2 - Ma 2ème PRÉOCCUPATION:

    Comment enlever une exigence (toujours avec Eloquent dans ma Migration) à une colonne ou à un champ de sorte à ce que quand la Table est remplie à travers le formulaire HTML (methode create() de Laravel par exemple), cela ne cause pas une erreur SQL du genre: "Le champ numero de telephone n'est pas remplie".

    Je sais que j'aurais pu créer tout simplement un nouveau Model et le lier au Model par défaut de Laravel (users) pour m'épargner tout ça mais c'est pour des raisons personnelles que je veux forcément ajouter d'autre colonne à ma Table "users" pour une utilisation future. Actuellement dans ma Migration.

    Alors, je voulais savoir quelle méthode Eloquent peut puis-je ajouter à $table->string('phonenumber')->....???...; pour que cette colonne phonenumber ne soit pas obligatoirement remplie et SURTOUT ne cause pas une ERREUR SQL dans ma vue ???

    MERCI DE M'AIDER SUR CES DEUX (2) ci-dessus.
    Je précise que c'est deux points (problèmes différents) concernant Eloquents.

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    Salut,

    Pour ton 1er point,
    l erreur te dit que le système à essayé de rajouter la colonne avatar à la table users mais qu'il n a pas trouvé la table users.

    Vérifie dans ta BdD que ta table existe bien avec le S à la fin (c'est souvent le problème)



    Pour ton 2eme point,
    Quand tu parles d'exigence, c'est a quel niveau que ça bloque ? au niveau SQL ou contrôle de validation de ton formulaire dans le controller ?

    Si c'est la BdD il suffit d autoriser le champs à accepter NULL

    Si c'est dans le controlleur il faut supprimer le controle required sur le validate du champs concerné.

  3. #3
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    @jreaux62

    c'est un peu ce que je dit quand j’écris
    ...mais qu'il n a pas trouvé la table users.

    Vérifie dans ta BdD que ta table existe bien ...
    non ?

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Showie Voir le message

    Pour ton 2eme point,
    Quand tu parles d'exigence, c'est a quel niveau que ça bloque ? au niveau SQL ou contrôle de validation de ton formulaire dans le controller ?

    Si c'est la BdD il suffit d autoriser le champs à accepter NULL

    Si c'est dans le controlleur il faut supprimer le controle required sur le validate du champs concerné.
    d'abord merci pour la réponse. Je rappelle que je travaille avec L'ORM Eloquent de LARAVEL.

    C'est au niveau du SQL que je veux enlever l'obligation (exigence) que ces champs ou colonnes soient remplis.
    Alors, un truc du genre: $table->string('phonenumber')->null ; serait-il correcte ????

  5. #5
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    La bonne méthode à appeler est nullable();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $table->string('phonenumber')->nullable();
    par contre, si tu as déjà créer ta colonne phonenumber lors d'une précédente migration tu dois rajouter change pour altérer ta colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $table->string('phonenumber')->nullable()->change();

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    OK. Grand merci à vous

Discussions similaires

  1. Ajouter une valeur par défaut à un champ
    Par mougeole dans le forum Doctrine2
    Réponses: 3
    Dernier message: 19/05/2017, 15h40
  2. [Drupal] Selectionner une valeur par défaut dans un formulaire de type select
    Par clem9085 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/11/2014, 14h28
  3. Réponses: 2
    Dernier message: 02/09/2011, 10h29
  4. Mettre une valeur par défaut dans un input type='file'
    Par fab76000 dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2009, 19h59
  5. [Requete] Comment donner une valeur par défaut à un paramètre
    Par soforever dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 14/05/2007, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo