yps Laravel 表示

言っときますが今回は簡単じゃない はい、行きますよーーーーーーーー!!!! やることはLaravelでworldcup2014dbの選手一覧表示 まずいきなり意味不ワード「mysqldump] これはmysqlにあるテーブル構成などをファイルに保存する感じかな!!! cd /var/www/html/yps このディレクトリで mkdir resources/sql/ Laravelのresourcesのなかにsqlディレクトリを作成 そのなかに入れます mysqldump -u root -p -d worldcup2014db > resources/sql/worldcup2014db.sql 注目はlaravelのresourcesのなかのSQLの中にダンプしたってこと 続いてチェック $ grep -i 'create table' resources/sql/worldcup2014db.sql ↓これがでる CREATE TABLE `countries` ( CREATE TABLE `goals` ( CREATE TABLE `goals_tmp` ( CREATE TABLE `pairings` ( CREATE TABLE `pairings_tmp` ( CREATE TABLE `players` ( CREATE TABLE `players_tmp` ( んでcountriesとgoalsとplayersとpairingsに追記 vi resources/sql/worldcup2014db.sql CREATE TABLE `countries` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `ranking` int(11) DEFAULT NULL, `group_name` varchar(1) DEFAULT NULL, ↓こっから `expired_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `deleted_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `created_at` timestamp NULL DEFAULT NULL, ↑ここまで PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 4つのテーブルでね これは何してるかってーと 既存のテーブル構成を書き換えてます。一回バラしてる感じです。 mysqlにログイン worldcup2014dbを消します drop database worldcup2014db; 消してすぐ中身すっからかんのworldcup2014dbを作ります create database worldcup2014db; use worldcup2014db; さっき構成変更したやつを流し込みます source resources/sql/worldcup2014db.sql; show table;←これでチェック #task3でやったworldcup2014をダウンロード、解凍します cd /tmp sudo yum install wget unzip -y wget tech.pjin.jp/wp-content/upl… unzip worldcup2014.zip ls -la worldcup2014.sql で、この中身だけ抽出したい テーブル構成はできてる tmpの方のテーブルをまるっと削除しちゃいます vi /tmp/worldcup2014.sql ↓こっから -- -- テーブルの構造 `countries` -- CREATE TABLE `countries` ( `id` int(11) NOT NULL, `name` varchar(50) DEFAULT NULL, `ranking` int(11) DEFAULT NULL, `group_name` varchar(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ↑ここまで んで cd-でypsのディレクトリに戻って テーブル構成を削除した方を流し込みます source /tmp/worldcup2014.sql 何個かwarning出るけどテーブル構成を削除してないとこだからシカトでおk データが入ってるかどうか確認します mysql> select count(*) from countries; +----------+ | count(*) | +----------+ | 32 | +----------+ mysql> select count(*) from goals; +----------+ | count(*) | +----------+ | 188 | +----------+ mysql> select count(*) from pairings; +----------+ | count(*) | +----------+ | 144 | +----------+ mysql> select count(*) from players; +----------+ | count(*) | +----------+ | 736 | +----------+ 以上でデータ完成 続いてモデルの作成 既存のモデルクラスは削除 rm app/Model/Player.php モデル作ります php artisan make:model Models/Country -m php artisan make:model Models/Goal -m php artisan make:model Models/Pairing -m php artisan make:model Models/Player -m この-m は -m, --migrationオプションでCreate a new migration file for the model マイクレーションも一緒に作るんですね テーブル名が複数形でモデルクラスが単数形なら自動で紐付きます が、念のために明示します。 // protected $table = "players"; protected $dates = ["expired_at", "deleted_at", "updated_at", "created_at"]; 4つともね。  続きましてコントローラー php artisan make:controller CountryController --resource --model=Models/Country php artisan make:controller GoalController --resource --model=Models/Goal php artisan make:controller PairingController --resource --model=Models/Pairing php artisan make:controller PlayerController --resource --model= Models/Player php artisan make:controller WelcomeController --resource この--resourceと--model=Models/Playerは -r, --resource Generate a resource controller class. -m, --model[=MODEL] Generate a resource controller for the given model. リソースとは、何かの源って意味らしい db→Model→Controller→view resources/view/welcome.blade.php の中身を全消し ↓コピペ 見えるかな 見えなかったらこちらへ あとルーター app/routes/web.php コピペね Route::get('/', 'WelcomeController@index'); Route::resource('players', 'PlayerController'); Route::resource('countries', 'CountryController'); Route::resource('goals', 'GoalController'); Route::resource('pairings', 'PairingController'); クラス追加したり、ルーター変更したら、これ👇やろう php artisan cache:clear && php artisan config:clear && php artisan route:clear && php artisan view:clear composer clear-cache && composer dump-autoload --optimize sudo chown -R centos:nginx /var/www/html/yps ここまでがやり方です こっからが自走 ヒントは ①テーブルビューを1つ追加(total_goals)  ②functionを1つ追加  ③controllerからviewに変数渡し 正直意味不 やりましょう まず、mysqlにviewを作ります mysqlにログイン create view total_goals as select 何々 気をつけるのはカラム名。goalsにしましょう。 そしたらModel,Controller 今まで作ってきたような流れで作成します んで php artisan cache:clear && php artisan config:clear && php artisan route:clear && php artisan view:clear composer clear-cache && composer dump-autoload --optimize sudo chown -R centos:nginx /var/www/html/yps エラーが出てlogを出力したかったら welcomeController.phpに with('players', $players); } catch(Throwable $e) { Log::debug($e->getMessage()); abort(500); } } } composer require laravel/ui php artisan ui bootstrap npm install && npm run dev←ここでエラー出た nodejs,npmバージョンアップ sudo yum remove node npm -y curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - sudo yum install nodejs -y はい!!!!以上です!!! めっちゃ学んだ!!!!! 後みんな優しい!!!