マイグレーションの実行

cdコマンドでプロジェクトのルートディレクトリに移動後、下記のコマンドを実行する。
php artisan migrate
2回目以降にコマンドを実行した場合、新しいマイグレーションファイルのみがテーブル作成の対象になるようだ。
つまり、既存のテーブルを勝手にマイグレーションで上書きしないようになっている。


パスワードリセットのバグ | password_resets doesn't exist

パスワードリセット時に下記のようなエラーができることがある。
エラー内容はpassword_resetsテーブルが無いということらしい。
	SQLSTATE[42S02]: Base table or view not found: 1146 Table '(DB名).password_resets' doesn't exist (SQL: select * from `password_resets` where `email` = test@example.com limit 1)
	

下記のコマンドでpassword_resetsテーブルの作成が可能
	composer require laravel/ui
	php artisan ui vue --auth
	php artisan migrate
	

上記のコマンドで行っていること。
  1. 「laravel/ui」のインストール
  2. 「laravel/ui」を利用してpassword_resetsなどのマイグレーションファイルを作成
  3. マイグレーションを実行してpassword_resetsを作成

URLのパスからpublicを省略する | .htaccess

ルートディレクトリの直下に下記「.htaccess」を配置する。

注意:この方法はlocalhost環境のみ有効!
本番環境ではシンボリックリンクを利用したほうが良い。

.htaccess


<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (¥.¥w+$) [NC]
    RewriteRule ^(.*)$ public/$1 

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php

</IfModule>
	
参考:liaotzukai/Php laravel 5.5 project .htaccess file


URLのパスからpublicを省略する | シンボリックリンク

SSHでシンボリックリンクを作成する方法。
publicを省略という言い方はやや語弊がある。とはいえ、この方法が正規のやり方なのかもしれない。

以下はさくらサーバーにSSHでアクセスし、シンボリックリンクを作成する例
	% ln -s /home/amaraimusi/www/CrudBase/laravel7/dev/public /home/amaraimusi/www/crud_base
	
http://amaraimusi.sakura.ne.jp/crud_base」でアクセスできるようになる。

メール設定 | パスワードリセット | さくらサーバー

さくらサーバー環境におけるメール設定

.env

	# MAIL_MAILER=smtp
	MAIL_DRIVER=smtp
	MAIL_HOST=アカウント.sakura.ne.jp
	MAIL_PORT=587
	MAIL_USERNAME=xxx@アカウント.sakura.ne.jp
	MAIL_PASSWORD=メールパスワード
	MAIL_ENCRYPTION=tls
	MAIL_FROM_ADDRESS=xxx@アカウント.sakura.ne.jp
	MAIL_FROM_NAME="${APP_NAME}"
	

「.env」のパラメータを取得する

env関数で「.env」のパラメータを取得できるようだ。


	$db_host = env('DB_HOST');
	

共通の汎用関数、定数などのグローバルモジュールの配置先

「プロジェクトルート/public/index.php」の下記の場所にてグローバルモジュールを組み込むことができる。

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);


require_once __DIR__. '/../sample.php'; // ←グローバルモジュール
$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
	);

// CrudBase設定

$response->send();

$kernel->terminate($request, $response);

パスワードをハッシュ化する


		$pw = 'abcd1234';
		$hash = \Hash::make('abcd1234'); // パスワードをハッシュ化する。
		// $hashの値をusersテーブルのpasswordフィールドにDB保存すること。
		
	

ログアウト


		if(!empty(\Auth::id())){
			\Auth::logout();
		}
	

認証チェック | ログイン状態のチェック


		if(\Auth::id() == null ){
			return 'Error:ログイン認証が必要です。 Login is needed';
		}