diff --git a/GamePedia/src/controleurs/ControleurScript.php b/GamePedia/src/controleurs/ControleurScript.php index 748e662dc3c0f30ea2899a0d5a2a1993600799b7..038156cee4b1492a3578efdd48a6d41c3b16268d 100644 --- a/GamePedia/src/controleurs/ControleurScript.php +++ b/GamePedia/src/controleurs/ControleurScript.php @@ -12,6 +12,7 @@ use gp\modeles\Game; use gp\modeles\Company; use gp\modeles\Character; use gp\modeles\Rating_board; +use Faker; class ControleurScript { @@ -355,36 +356,53 @@ class ControleurScript public function generation(){ // use the factory to create a Faker\Generator instance $faker = Faker\Factory::create(); - if(User::take(50)== null){ + if(User::first()== null){ //all users - for($i=0; i<25000; $i++){ - //fake data - $tmp = $faker->name.split(' '); - $user['fname'] = $tmp[0]; - $user['name'] = $tmp[1]; - $user['adress'] = $faker->adress; - $user['email'] = $faker->email; - $user['tel'] = $faker->e164PhoneNumber; - $user['date'] = $faker->date('Y-m-d','2005-01-01'); - //insert - User::create($user['fname'], $user['name'], $user['email'], $user['adress'], $user['tel'], $user['date']); + for($i=0; $i<10; $i++) { + $insert = false; + while (!$insert) { + try { + //fake data + $tmp = explode(' ', $faker->name); + $user['fname'] = $tmp[0]; + $user['name'] = $tmp[1]; + $user['address'] = $faker->address; + $user['email'] = $faker->email; + $user['tel'] = $faker->e164PhoneNumber; + $user['date'] = $faker->date('Y-m-d', '2005-01-01'); + //insert + User::create($user['fname'], $user['name'], $user['email'], $user['address'], $user['tel'], $user['date']); + $insert = true; + } catch (PDOException $Exception) { + echo("Duplicate data : recreating new fake"); + } + } } } - if(Comment::take(50)== null){ + if(Comment::first()== null){ //all comments - for($i=0; i<250000; $i++){ - //random user - $user = User::all()->random(1)->first(); - //random game - $game = Game::all()->random(1)->first(); - //fake data - $title = $faker->text(50); - $content = $faker->text(200); - $date = $faker->date('Y-m-d', '2015-02-01'); - //insert comment - Comment::create($game->id, $user->email, $title, $content, $date); + for($i=0; $i<100; $i++){ + $insert = false; + while (!$insert) { + try { + $id_user = random_int(0, 9); + $id_game = random_int(0, 9); + //random user + $user = User::skip($id_user)->take(1)->first(); + //random game + $game = Game::skip($id_game)->take(1)->first(); + //fake data + $title = $faker->text(50); + $content = $faker->text(200); + $date = $faker->date('Y-m-d', '2015-02-01'); + //insert comment + Comment::create($game->id, $user->email, $title, $content, $date); + $insert = true; + } catch (PDOException $Exception) { + echo("Duplicate data : recreating new fake"); + } + } } } } - } \ No newline at end of file diff --git a/GamePedia/src/modeles/Comment.php b/GamePedia/src/modeles/Comment.php index 8e50f9261be7d69b778982cf7023e69e05b952bc..1e313fb7fa047b2ef11683f9139723640c524566 100644 --- a/GamePedia/src/modeles/Comment.php +++ b/GamePedia/src/modeles/Comment.php @@ -10,15 +10,19 @@ class Comment extends \Illuminate\Database\Eloquent\Model public static function create($id_game, $email, $title, $content, $createdAt){ $obj = new Comment(); $obj->email = $email; + $obj->id_game =$id_game; $obj->title = $title; $obj->content = $content; - $obj->createdAt = $createdAt; + $obj->created_at = $createdAt; + $obj->updated_at = $createdAt; $obj->save(); - Game::where('id', '=', $id_game)->first()->comments()->attach([$id_game]); return $obj; } - function games(){ - return $this->BelongsToMany('gp\modeles\Game', 'game2comment','comment_id'); + function game(){ + return $this->BelongsTo('gp\modeles\Game','id_game'); + } + function user(){ + return $this->BelongsTo('gp\modeles\User', 'email'); } } \ No newline at end of file diff --git a/GamePedia/src/modeles/User.php b/GamePedia/src/modeles/User.php index 7410dee196094834eaf483d8fec1f80694c0eb8c..17d1c6715abc002283266f11f2a6b968b1d9d8a7 100644 --- a/GamePedia/src/modeles/User.php +++ b/GamePedia/src/modeles/User.php @@ -7,19 +7,19 @@ class User extends \Illuminate\Database\Eloquent\Model protected $primaryKey = 'id'; public $timestamps = false ; - public static function create($fname, $name, $email, $adress, $numtel, $date){ + public static function create($fname, $name, $email, $address, $numtel, $date){ $obj = new User(); $obj->name = $name; - $obj->fname = $fname; + $obj->first_name = $fname; $obj->email = $email; - $obj->adress = $adress; - $obj->numtel = $numtel; - $obj->date = $date; + $obj->address = $address; + $obj->phone = $numtel; + $obj->dateNaiss = $date; $obj->save(); return $obj; } - function games(){ - return $this->BelongsToMany('gp\modeles\Game', 'game2genre','genre_id'); + function comments(){ + return $this->hasMany('gp\modeles\Comment', 'email'); } } \ No newline at end of file diff --git a/GamePedia/td4_update.sql b/GamePedia/td4_update.sql new file mode 100644 index 0000000000000000000000000000000000000000..605f3880201f4a4a910d96b2f01915817547d590 --- /dev/null +++ b/GamePedia/td4_update.sql @@ -0,0 +1,33 @@ +-- -------------------------------------------------------- + +-- +-- Structure de la table `User` +-- + +DROP TABLE IF EXISTS `user`; +CREATE TABLE IF NOT EXISTS `user` ( + `email` varchar(50) NOT NULL, + `name` varchar(50), + `first_name` varchar(50), + `address` varchar(200), + `phone` varchar(30), + `dateNaiss` date, + PRIMARY KEY (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- -------------------------------------------------------- + +-- +-- Structure de la table `Comment` +-- + +DROP TABLE IF EXISTS `comment`; +CREATE TABLE IF NOT EXISTS `comment` ( + `id` int(14) NOT NULL AUTO_INCREMENT, + `email` varchar(50) NOT NULL, + `id_game` int(14) NOT NULL, + `title` varchar(50), + `content` text, + `created_at` date, + `updated_at` date, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8;