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 :

Clé étrangere avec laravel


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2009
    Messages : 82
    Par défaut Clé étrangere avec laravel
    bonjour,

    je travaille avec laravel 4
    qui peut me corrigé sa
    je veut faire un clé etrangere id_show dans les deux table episode et slider
    -un show has many episode
    -un show has many sliderimage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    class Admin extends Migration {
     
    	/**
    	 * Run the migrations.
    	 *
    	 * @return void
    	 */
    	public function up()
    	{
    		Schema::create('admin',function($table){
    			$table->increments('id');
    			$table->string('name', 50);
    			$table->string('password', 50);
    			$table->string('role', 10); //super ou simple
    			$table->string('email', 50);
    			$table->string('telNumber', 12);
    		});
    	}
     
    	/**
    	 * Reverse the migrations.
    	 *
    	 * @return void
    	 */
    	public function down()
    	{
    		Schema::drop('admin');
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    class Shows extends Migration {
     
    	/**
    	 * Run the migrations.
    	 *
    	 * @return void
    	 */
    	public function up()
    	{
    		Schema::create('Shows',function($table){
    			$table->increments('id');
    			$table->string('name', 100);
    			$table->string('state');
    			$table->text('description');
    			$table->timestamps();
    		});
    	}
     
    	/**
    	 * Reverse the migrations.
    	 *
    	 * @return void
    	 */
    	public function down()
    	{
    		Schema::drop('Show');
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    class SliderImages extends Migration {
     
    	/**
    	 * Run the migrations.
    	 *
    	 * @return void
    	 */
    	public function up()
    	{
    		Schema::create('sliderImages',function($table){
    			$table->increments('id');
    			$table->text('imageLink');
    			$table->string('state');
    			$table->unsignedInteger('show_id');
    			$table->foreign('show_id')->references('id')->on('Shows');
    		});
    	}
     
    	/**
    	 * Reverse the migrations.
    	 *
    	 * @return void
    	 */
    	public function down()
    	{
    		Schema::drop('sliderImage');
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    class Episodes extends Migration {
     
    	/**
    	 * Run the migrations.
    	 *
    	 * @return void
    	 */
    	public function up()
    	{
    		Schema::create('Episodes',function($table){
    			$table->increments('id');
    			$table->string('name', 100);
    			$table->text('description');
    			$table->timestamps();
    			$table->string('animator');
    			$table->text('videoLink');
    			$table->text('miniatureImageLink');
    			$table->unsignedInteger('show_id');
    			$table->foreign('show_id')->references('id')->on('Shows');
    		});	}
     
    	/**
    	 * Reverse the migrations.
    	 *
    	 * @return void
    	 */
    	public function down()
    	{
    		Schema::drop('Episode');
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    class Shows extends Eloquent{
     
    	 protected $table = 'Shows';
    	 protected $fillable = array('name', 'state', 'description');
    	 protected $guarded = array('id', 'created_at','updated_at');
     
    	 public static $rules = array(
    	 		'description'=>'required',
    	 		'name'=>'required'
    	 		);
     
    	 public static function validate($data){
     
    	 	return Validator::make($data, static::$rules);
    	 }
     
    	 public function Episodes()
        {
            return $this->hasMany('Episodes');
        }
     
         public function SliderImages()
        {
            return $this->hasMany('SliderImages');
        }
     
    	}

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Salut,
    ca doit marcher puisque tu n'as aucun message d'erreur ...

    Avec Eloquent "normalement" les noms de tables sont au pluriels, comme cela pas besoin de le mettre dans le modèle. et Les noms de modèles sont en minuscule.

    Tu n'as pas créé de clé etrangère ? (contrainte)

    Modele :
    le nom de la méthode (liaison) doit être en minuscule

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2009
    Messages : 82
    Par défaut
    le messge d erreur dans le fichier jointe
    Images attachées Images attachées  

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    (erreur pure sql) peut etre
    dans show (et autres) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $table->increments('id')->unsigned()
    sinon la ils n'ont pas le meme type (signed et unsigned)...

    et bien sur tu n'es pas en myIsam (j'ai honte de te le demandé)

    ps: il est possible normalement de copier juste le texte de la console win.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2009
    Messages : 82
    Par défaut
    je suppose que non parce que j'ai crée la base sans aucune modification

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    Citation Envoyé par hedibox Voir le message
    je suppose que non parce que j'ai crée la base sans aucune modification
    ? modification de quoi ?
    moi je t'ai suggérer de changer le type des id :
    increments('id')->unsigned() et tu as pas modifié ?

    et je t'ai demandé de vérfier le type des tables : pas myisam (InnoDB puisque tu desires cle etrangere)

    ai créé une migration test pour voir et tout est passé sans aucune erreur :
    fichier complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    use Illuminate\Database\Migrations\Migration;
     
    class Test extends Migration {
     
    	public function up()
    	{
    		Schema::create('Shows',function($table){
    			$table->increments('id')->unsigned();
    			$table->string('name', 100);
    			$table->string('state');
    			$table->text('description');
    			$table->timestamps();
    		});
     
    		Schema::create('sliderImages',function($table){
    			$table->increments('id')->unsigned();
    			$table->text('imageLink');
    			$table->string('state');
    			$table->integer('show_id')->unsigned();
    			$table->foreign('show_id')->references('id')->on('Shows');
    		});
    	}
     
    	public function down()
    	{
    		Schema::drop('sliderImage');
                    Schema::drop('Show');
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bootstrap avec laravel 4
    Par hedibox dans le forum Laravel
    Réponses: 2
    Dernier message: 28/09/2013, 01h56
  2. probleme avec laravel
    Par hedibox dans le forum Laravel
    Réponses: 6
    Dernier message: 21/09/2013, 03h27
  3. Clé étrangers avec talend
    Par khaoulamr dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 02/04/2013, 14h33
  4. Réponses: 6
    Dernier message: 25/07/2012, 10h57
  5. Les Clé Primaires et étrangeres avec Excel
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/06/2007, 13h53

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