20210724のlaravelに関する記事は8件です。

複数のクライアント環境が、サーバに接続する機構をつくってみた

はじめに 複数のクライアント環境が、特定のサーバに接続する機構がよくあります。 例えば、WordPressやGit(GitHub)などがあります。 もっと言ってしまえば、そこらじゅうにあるWebアプリケーションが該当しますが、今挙げた2つは、クライアントがファイル構造を日頃から意識している特徴があります。 まず、WordPressはこんな仕組みになってます。 現在無数に存在するWordPressクライアントに対して、テーマとプラグインは(広義では)ひとつのサーバであり、クライアントへ同じ情報を提供しています。 次に、GitとGitHubの関係も簡単に表すとこんな感じになります。 Gitは無数のクライアントが存在しますが、WordPress同様、GitHubはサーバがひとつとなります。 くどいようですが、 これをモデルとして書き直すとこんな感じになります。 今回は、これをLaravelで再現します。 これをLaravelで再現するとこうなります。 今回の目的 複数のクライアント環境が、ある一つのサーバにアクセスする仕組みを作ります。 ありきたりな単純なサーバ-クライアントの関係です。 下準備 今回は、以下の設定で進めていきます。 ローカルIPアドレスの環境構築になります。 種別 IP Address データの格納場所 サーバ 192.168.189.200 /show クライアント 192.168.189.101 /get クライアント 192.168.189.102 /get DockerとLaravelの環境を整えます。 # Dockerのインストール curl -fsSL https://get.docker.com/ | sh # Laravelのインストール curl -s "https://laravel.build/client" | bash cd client ./vendor/bin/sail up -d クライアントの作成 # コントローラの作成 ./vendor/bin/sail artisan make:controller GetServerController ./app/Http/Controllers/GetServerController.phpが作成されたので、編集します。 GetServerController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class GetServerController extends Controller { public function index () { /* ここでは試しにyuzukichi.jpのHTMLファイルを読み出しています */ //$server_name = "https://yuzukichi.jp/get-docker.sh"; $server_name = "192.168.189.200/show"; return view('get_server', ['server'=> $server_name, 'data'=>$this->curl_test($server_name)]); } private function curl_test($url) { $conn = curl_init(); // cURLセッションの初期化 curl_setopt($conn, CURLOPT_URL, $url); // 取得するURLを指定 curl_setopt($conn, CURLOPT_RETURNTRANSFER, true); // 実行結果を文字列で返す。 $res = curl_exec($conn); curl_close($conn); //セッションの終了 return htmlspecialchars($res); } } cURL関数を使って、外部サイトのファイルにアクセスして値を取得する形にします。 ./public/resources/views/get_server.blade.phpを作成し、HTMLの雛形だけ作っておきます。 VSCodeとかだと!を入力してからタブキーを押すと、勝手に雛形を生成してくれるので便利です。 get_server.blade.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <p>GET SERVER: <?= $server ?> </p> <p>GET VALUE: <?= $data ?> </p> </body> </html> ./public/routes/web.phpに以下を追記します。 web.php <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\GetServerController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('/get', [GetServerController::class, 'index']); 今回はコントローラにてcURL関数で外部サイトのファイルを読み出す動きをさせました。 これを応用して認証処理やAPIを作成することによって、外部のデータを操作したり取得したりすることができるようになります。 http://IPアドレス/getにアクセスした結果 (https://yuzukichi.jp/get-docker.sh にアクセスした例) この構成のまま、ファイルをパッケージングすることで、複数のクライアントがサーバに接続する仕組みを作ることができます。 とても単純な構成でした。 サーバ側の作成 サーバ側でも下準備を行い、Laravelを動かしていきます。 # コントローラの作成 ./vendor/bin/sail artisan make:controller ShowDataController ShowDataController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ShowDataController extends Controller { public function index () { $value = "successfully!"; return view('show', ['data'=> $value]); } } クライアントと同様のやり方で、./public/resources/views/show.blade.phpを作成します。 show.blade.php <?php echo $data; ./public/routes/web.phpを追記します。 web.php <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ShowDataController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('/show', [ShowDataController::class, 'index']); これで基本形は完成になります。 クライアント側を再パッケージし、他の環境で複数個デプロイすることで、複数クライアントからアクセスされるクライアント-サーバモデルを実現することができます。 実際には、コントローラ部分に認証の処理や、データベース操作などの処理を行うことになると思います。 サーバ側のデータベースを活用すれば、WordPressやGitHubのような仕組みを再現することができます。 (あくまでも単純なモデルとしての再現で、実際のWPやGitHubはよりハイレベルな処理が行われています)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS EC2 Laravel8 Apache 環境構築

はじめに EC2:AmazonLinux2 php7.4:laravel8 apache2.4 の環境を構築する aws EC2インスタンス作成 awsにログイン 「EC2」を検索し、移動 「インスタンス」を選択 「インスタンスの作成」を選択 「Amazon Linux 2 」を選択 「t2.micro」「確認と作成」を選択 セキュリティグループ設定 起動 「キーペアのダウンロード」「インスタンスの作成」 インスタンス作成完了(起動までしばらく時間がかかります) ssh接続 今回は「putty」でssh接続をします。 検索から「puTTYgen」を起動 ダウンロードした「test.pen」を選択 「test.ppk」で保存 環境構築 作成したインスタンスを選択、IPアドレスを確認 「test.ppk」を設定 「Open」「はい」を選択 「ec2-user」でログイン 初期設定 パッケージを最新に更新 $ sudo yum update -y タイムゾーンを日本時間にセット $ sudo vim /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=false 日本時間にセット $ sudo cp /usr/share/zoneinfo/Japan /etc/localtime $ sudo vim /etc/sysconfig/i18n LANG="ja_JP.UTF-8" PHP7.4インストール $ sudo amazon-linux-extras install php7.4 $ php -v PHP 7.4.21 (cli) (built: Jul 7 2021 17:35:08) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies 拡張モジュールをインストール $sudo yum install php-mbstring php-pecl-memcached php-gd php-apcu php-xml php-mysql php-mysqlnd /etc/php.ini 設定変更 /etc/php.ini $sudo vim /etc/php.ini # HTTPヘッダにPHPのバージョンを記載しない(一応セキュリティ的にOffにしておいたほうが良い) # expose_php = On expose_php = Off # メモリ上限を引き上げる(結構デフォルトのメモリは少なめなので増やしておくことが多い) # memory_limit = 128M memory_limit = 256M # POST送信の許容サイズを引き上げる # post_max_size = 8M post_max_size = 16M # アップロードファイルの許容サイズを引き上げる # upload_max_filesize = 2M upload_max_filesize = 16M # timezoneの設定 # date.timezone = date.timezone = Asia/Tokyo php-fpmの再起動 $ sudo systemctl restart php-fpm apache2.4インストール sudo yum install httpd 起動 sudo systemctl start httpd 起動確認 sudo systemctl status httpd ※『active (running)』が出ればOK http://13.231.219.67/ 表示できることを確認 laravelのルート「/」以外 Not foundになるため、.htaccessの有効にする $ sudo vim /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/" ↓ DocumentRoot "/var/www/html/【laravelパス】/public/" <Directory "/var/www/html"> AllowOverride None </Directory> ↓ <Directory "/var/www/html"> AllowOverride All </Directory> 再起動 $ sudo systemctl restart httpd Laravelインストール Composerをインストール curl -sS https://getcomposer.org/installer | php composer のコマンドで実行できるように、PATHが通っている場所へ移動 sudo mv composer.phar /usr/local/bin/composer cd /var/www/html sudo chmod 777 /var/www/html/ composer create-project --prefer-dist laravel/laravel test $ cd /var/www/html/test $ composer update $ chmod -R 777 bootstrap/cache $ chmod -R 777 storage $ cp .env.example .env $ php artisan key:generate http://13.231.219.67/test/public/
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

個人開発で会計ソフトを開発しました

各種リンク front-end https://github.com/nobu0605/accounting-application back-end https://github.com/nobu0605/accounting-application-api application https://accounting-application-front.herokuapp.com 背景 自分はエンジニアにキャリアチェンジする前に、経理などのバックオフィスの仕事を3年半ほどしていました。経理の仕事には今も興味があるので、今回個人で会計ソフトを開発してみました。 機能(一部) ・言語切り替え 日本語と英語を選ぶ事ができます。 日本語 英語 ・振替伝票 仕訳を入力する事ができます。 ・財務レポート ・仕訳一覧 使用した技術 ・フロント React version 17.0.1 Typescript version 4.0.5 ・バックエンド Laravel Framework 6.20.4 PHP 7.3.24 MySQL 5.7 ・CI/CD GitHub Actions ・サーバー Heroku ・ER図 https://drive.google.com/file/d/14r1bxllKWg7Ih6xf9yeYxHyRrDL5FkrU/view?usp=sharing
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPで生年月日のフォームを自作関数にしてLaravelのbladeで使ってみた

はじめに Laravelのbladeで、フォームに生年月日入力欄を作ろうとし、「生年月日 select コピペ」で調べてコピペした際、長すぎーと思ったので、 PHPで書き直してから、Laravelのbladeで表示させるところまでやってみました。 index.blade.php //~略 <option value="">-</option> <option value="1900">1900</option> <option value="1901">1901</option> <option value="1902">1902</option> <option value="1903">1903</option> <option value="1904">1904</option> <option value="1905">1905</option> <option value="1906">1906</option> <option value="1907">1907</option> <option value="1908">1908</option> <option value="1909">1909</option> <option value="1910">1910</option> <option value="1911">1911</option> <option value="1912">1912</option> //略)2021まで続く... //...長い。 まずは生PHPでテスト 後ほど、自作関数としてbladeに表示させるつもりだったので、function内に処理を書いて、呼び出すようにしました。 postで受け取った後に年と月と日を連結してdate型にしたかったので、月と日はvalue値をstr_pad()で0埋めにしました。 →★コメントより、sprintfの方がより楽という意見をいただきましたので、変更しました。よりスマートになりました。有難うございます。 test.php <?php //年 function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } //月 function monthSelect(){ for($m=1; $m<=12; $m++){ $pad = sprintf('%02d', $m) //1~9までは前を0埋め,str_pad($m, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$m.'</option>'; } } //日 function daySelect(){ for($d=1; $d<=31; $d++){ $pad = sprintf('%02d', $d); //1~9までは前を0埋め,str_pad($d, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$d.'</option>'; } } ?> <!--略--> <div> <select name="birthday_year"> <option value="">-</option> <?php yearSelect(); ?> </select> 年 <select name="birthday_month"> <option value="">-</option> <?php monthSelect(); ?> </select> 月 <select name="birthday_day"> <option value="">-</option> <?php daySelect(); ?> </select> 日 </div> <!--略--> できたので、Laravelでやってみます。 【Laravel】自作関数用のクラスを作成 appディレクトリに、Lib(任意名)ディレクトリを作成し、MyFunction.php(任意名)を作成 MyFunctionクラスの中にstaticメソッドを作成していきます。(先程のをstaticにしてぶち込んだだけです。) staticの解説としては以下が分かりやすかったです。有難うございます。 https://fresh-engineer.hatenablog.com/entry/2018/08/23/031829 app>MyFunction.php <?php namespace App\Lib; class MyFunction { public static function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } public static function monthSelect(){ for($m=1; $m<=12; $m++){ $pad = sprintf('%02d', $m) //1~9までは前を0埋め,str_pad($m, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$m.'</option>'; } } public static function daySelect(){ for($d=1; $d<=31; $d++){ $pad = sprintf('%02d', $d); //1~9までは前を0埋め,str_pad($d, 2 ,0, STR_PAD_LEFT)から変更 echo '<option value="'.$pad.'">'.$d.'</option>'; } } } 【Laravel】エイリアスに登録 configディレクトリのapp.php内にあるエイリアス(aliases)の中に 'クラス名' => App\Lib\ファイル名::class,を追加します config>app.php 'aliases' => [ //~略 'MyFunction' => App\Lib\MyFunction::class, ], 【Laravel】bladeで使用する {{ MyFunction::関数(メソッド)名 }} index.blade.php <!--略--> <li class="form-item"> <p class="form-item-title">生年月日</p> <select name="birthday_year"> <option value="">-</option> {{ MyFunction::yearSelect() }} </select> 年 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::monthSelect() }} </select> 月 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::daySelect() }} </select> 日 </li> <!--略--> 無事表示されました。おしまい。 おわりに 初めてのQlita投稿でした。 いつもお世話になっているので、自分もと思い投稿してみましたが、Qlitaの質を下げてしまうのは一番避けたいところですので、もし他に良い方法や間違っている点等あれば教えて頂ければ幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHPで生年月日のフォームを作りLaravelのbladeで使ってみた

はじめに Laravelのbladeで、フォームに生年月日入力欄を作ろうとし、「生年月日 select コピペ」で調べてコピペした際、長すぎーと思ったので、 PHPで書き直してから、Laravelのbladeで表示させるところまでやってみました。 index.blade.php //~略 <option value="">-</option> <option value="1900">1900</option> <option value="1901">1901</option> <option value="1902">1902</option> <option value="1903">1903</option> <option value="1904">1904</option> <option value="1905">1905</option> <option value="1906">1906</option> <option value="1907">1907</option> <option value="1908">1908</option> <option value="1909">1909</option> <option value="1910">1910</option> <option value="1911">1911</option> <option value="1912">1912</option> //略)2021まで続く... //...長い。 まずは生PHPでテスト 後ほど、自作関数としてbladeに表示させるつもりだったので、function内に処理を書いて、呼び出すようにしました。 postで受け取った後に年と月と日を連結してdate型にしたかったので、月と日はvalue値をstr_padで0埋めにしました。 test.php <?php //年 function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } //月 function monthSelect(){ for($i=1; $i<=12; $i++){ $pad = str_pad($i, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$i.'</option>'; } } //日 function daySelect(){ for($i=1; $i<=31; $i++){ $pad = str_pad($i, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$i.'</option>'; } } ?> <!--略--> <div> <select name="birthday_year"> <option value="">-</option> <?php yearSelect(); ?> </select> 年 <select name="birthday_month"> <option value="">-</option> <?php monthSelect(); ?> </select> 月 <select name="birthday_day"> <option value="">-</option> <?php daySelect(); ?> </select> 日 </div> <!--略--> できたので、Laravelでやってみます。 【Laravel】自作関数用のクラスを作成 appディレクトリに、Lib(任意名)ディレクトリを作成し、MyFunction.php(任意名)を作成 MyFunctionクラスの中にstaticメソッドを作成していきます。(先程のをstaticにしてぶち込んだだけです。) staticの解説としては以下が分かりやすかったです。有難うございます。 https://fresh-engineer.hatenablog.com/entry/2018/08/23/031829 app>MyFunction.php <?php namespace App\Lib; class MyFunction { public static function yearSelect(){ $n = date("Y"); //現在の年 $y = $n - 125; //125年前からスタート for($y; $y<$n; $y++){ echo '<option value="'.$y.'">'.$y.'</option>'; } } public static function monthSelect(){ for($m=1; $m<=12; $m++){ $pad = str_pad($m, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$m.'</option>'; } } public static function daySelect(){ for($d=1; $d<=31; $d++){ $pad = str_pad($d, 2 ,0, STR_PAD_LEFT); //1~9までは前を0埋め echo '<option value="'.$pad.'">'.$d.'</option>'; } } } 【Laravel】エイリアスに登録 configディレクトリのapp.php内にあるエイリアス(aliases)の中に 'クラス名' => App\Lib\ファイル名::class,を追加します config>app.php 'aliases' => [ //~略 'MyFunction' => App\Lib\MyFunction::class, ], 【Laravel】bladeで使用する {{ MyFunction::関数(メソッド)名 }} index.blade.php <!--略--> <li class="form-item"> <p class="form-item-title">生年月日</p> <select name="birthday_year"> <option value="">-</option> {{ MyFunction::yearSelect() }} </select> 年 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::monthSelect() }} </select> 月 <select name="birthday_year"> <option value="">-</option> {{ MyFunction::daySelect() }} </select> 日 </li> <!--略--> 無事表示されました。おしまい。 おわりに 初めてのQlita投稿でした。 いつもお世話になっているので、自分もと思い投稿してみましたが、Qlitaの質を下げてしまうのは一番避けたいところですので、もし他に良い方法や間違っている点等あれば教えて頂ければ幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravelを使ってキャンプ用のアプリを制作中(個人開発)

テーマ キャンプアプリ 目的 ①PHP、Laravelの勉強 ②個人開発をしてみたかった ③キャンプ好きなので役立つアプリが欲しい 技術メモ Laravel独自書き方 // var_dump($posts); // exit; dd($posts); visual studio codeでターミナルを開く command + J SailコマンドとはLaravelにはLaravel SailというのがあってそのSailコマンドを使えばDockerを実行させることができる コントローラー作成 ./vendor/bin/sail artisan make:controller <コントローラー名>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Laravel] 複数の通知タイプの合計未読数を取得する

Laravel のデータベース通知を使って未読数を取得します。 通知タイプが1つの場合 通常,通知を取得する場合は1つの通知タイプ(notificationsテーブル の typeカラム)のみを扱うことが多いです。 例えば,未読のメッセージ数は以下のようにして取得できます。 $user->unreadNotifications()->where('type', 'App\Notifications\MessageReceived')->count(); 通知タイプが複数の場合 チャットアプリを例に挙げます。 「メッセージを受信した」「グループに招待された」のように,複数の通知タイプの合計数を表示したい場面があるかもしれません。 以下のように書きたくなりますが,これでは想定通りに動きません。 $user()->unreadNotifications()->where('type', 'App\Notifications\MessageReceived')->orWhere('type', 'App\Notifications\GroupInvited')->count(); 実行された SQL を見ると,type の条件がグループ化されていないのがわかります。 これだと type = "App\Notifications\GroupInvited" に該当する全てのレコードも含めてしまいます。 select count(*) as aggregate from `notifications` where `notifications`.`notifiable_id` = 1 and `notifications`.`notifiable_id` is not null and `notifications`.`notifiable_type` = "App\Models\User" and `read_at` is null and `type` = "App\Notifications\MessageReceived" or `type` = "App\Notifications\GroupInvited" /* 以下の2行は等しい */ WHERE a AND b AND c OR d WHERE (a AND b AND c) OR d 条件をグループ化して,以下のような SQL を組み立てる必要があります。 WHERE a AND b AND (c OR d) 正しい書き方 クロージャを使ってクエリをグループ化します。 $user()->unreadNotifications()->where(function(Builder $query) { $query->where('type', 'App\Notifications\MessageReceived') ->orWhere('type', 'App\Notifications\GroupInvited'); })->count(); 実行された SQL select count(*) as aggregate from `notifications` where `notifications`.`notifiable_id` = 1 and `notifications`.`notifiable_id` is not null and `notifications`.`notifiable_type` = "App\Models\User" and `read_at` is null and (`type` = "App\Notifications\MessageReceived" or `type` = "App\Notifications\GroupInvited") メソッドとして定義する 毎回クエリを書くのは面倒なのでモデルに定義します。 User.php use Illuminate\Database\Eloquent\Builder; public function getChatUnreadCount(): int { return $this ->unreadNotifications()->where(function(Builder $query) { $query->where('type', 'App\Notifications\MessageReceived') ->orWhere('type', 'App\Notifications\GroupInvited'); })->count(); } // チャットの未読通知数を取得 $user->getChatUnreadCount(); 任意の通知タイプを扱う 上で定義したメソッドでは条件が固定でした。 汎用的に使えるように,任意の通知タイプを指定できるようにします。 User.php use Illuminate\Database\Eloquent\Builder; /** * * @param string[] $types * @return int */ public function getCombinedUnreadCount(string ...$types): int { if(empty($types)){ return $this->unreadNotifications->count(); } return $this ->unreadNotifications()->where(function(Builder $query) use ($types) { $i = 0; $name = ''; foreach($types as $type){ $name = 'App\\Notifications\\' . $type; if($i === 0){ $query->where('type', $name); }else{ $query->orWhere('type', $name); } ++$i; } })->count(); } 通知クラス名を文字列で , 区切りにして渡します。 $user()->getCombinedUnreadCount('MessageReceived', 'GroupInvited', 'FriendAdded'); select count(*) as aggregate from `notifications` where `notifications`.`notifiable_id` = 1 and `notifications`.`notifiable_id` is not null and `notifications`.`notifiable_type` = "App\Models\User" and `read_at` is null and (`type` = "App\Notifications\MessageReceived" or `type` = "App\Notifications\GroupInvited" or `type` = "App\Notifications\FriendAdded") 最後に 実際は、わざわざメソッドとして定義する必要もないかもしれませんが、何か参考になればと思い書きました。 間違っている部分などがあれば、ご指摘いただけると嬉しいです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

laravel新規プロジェクト環境設定+認証機能

Laravel新規プロジェクト作成(laravel7) まずは、ターミナルで以下のコマンドを打ってプロジェクトを作成していく。 $ composer create-project "laravel/laravel=7.*" <プロジェクト名> 次はpostgresでDBを作成(postgresインストール済みとする) //ログイン psql -d postgres //DB一覧 \l //DB作成 # create database DB名; //CREATE DATABASE と表示されたらOK 次に.envファイルの編集 DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=先ほどpostgresで作成したDB名 DB_USERNAME=postgres DB_PASSWORD= php artisan migrate を実行 $ php artisan migrate postgresにusersテーブルが作られているか確認。 *Laravelをインストールした時に最初からあるはずのcreate_users_table.phpとcreate_password_resets_table.phpを元にテーブルが作られる。 //DB接続 myproject-# \c データベース名 テーブル一覧 myproject-# \d  List of relations Schema | Name | Type | Owner --------+--------------------+----------+---------- public | failed_jobs | table | postgres public | failed_jobs_id_seq | sequence | postgres public | migrations | table | postgres public | migrations_id_seq | sequence | postgres public | password_resets | table | postgres public | users | table | postgres public | users_id_seq | sequence | postgres 確認できればOK!! 認証機能 次はusersテーブルにちゃんとデータが入るか確認する。 Laravel6.0以降からmake:authコマンドが使用できなくなり、laravel/uiをインストールする必要があるため下記のコマンドを打つ $ composer require laravel/ui:^2.4 $ php artisan ui vue --auth これで画面右上に認証機能が追加された。 しかし認証画面へ遷移するとスタイルが崩れてしまっている。 原因はsass/app.scssが反映されてない(コンパイル)ので下記のコマンドを打つ $ npm install $ npm run dev これでスタイルが修正された。 ちゃんとDBに接続されているか実際に呼び出してみる viewsファイルに新しくindex.blade.phpを作成 <div> <h1>{{$users->name}}</h1> </div> 次にControllerの作成 $ php artisan make:controller HelloController HelloController.phpに下記を追記 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; // Userの情報をとってくるため追記 use App\User; use Auth; class HelloController extends Controller { public function index(){ // 認証済みのユーザーのデータを$usersに格納 $users = Auth::user(); return view('index',compact('users')); } } web.phpにroteを追加 <?php use Illuminate\Support\Facades\Route; Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); //追記 Route::get('/index', 'HelloController@index')->name('index'); これで下記のURLにアクセスして登録したuser名が表示されていれば多分OK!! http://127.0.0.1:8000/index
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む