LAMP環境-- XAMPP
エディタ環境--ATOM
$ dnf install composerroot ユーザではインストールできないので一般ユーザでインストールします。
xxxxxxxxxx$ composer global require laravel/installer.bash_profile に以下の記述を追加
xxxxxxxxxxexport PATH=/home/username/.config/composer/vendor/bin:$PATH
プロジェクトの作成
コンポーザー経由でインストールする場合
xxxxxxxxxx$ composer create-project --prefer-dist laravel/laravel project_name最初に作成するときはいろいろコンポーネントがインストールされるので時間がかかります。
xxxxxxxxxx$ chmod -R 777 storage$ chmod -R 777 vendorこの設定を行わないとエラーで実行できません。
xxxxxxxxxx'timezone' => 'Asia/Tokyo','locale' => 'ja','fallback_locale' => 'ja',
Laravel で実装したライブラリを実行する際に redirect の処理が発生します。そのため、redirect の設定が必要になります。
xxxxxxxxxxlocation /lavavel/public/ {try_files $uri $uri/ /paybbs/paybbs/public/index.php?$query_string;}
プロジェクトフォルダ直下の「.env」を編集します。
xxxxxxxxxxDB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=laravelDB_USERNAME=rootDB_PASSWORD=password
xxxxxxxxxx$ php artisan ui vue --auth$ php artisan migrate
login の挙動をするための環境構築(パッケージインストール)とテーブル作成を行う
データベースの設定が問題なければ、テーブルの作成が自動で行われます。
xxxxxxxxxx$ npm install$ npm run dev
node.js をインストールし、CSS/JS の構築
xxxxxxxxxxcomposer require laravel/jetstreamphp artisan jetstream:install livewire --teamsphp artisan migrate
xxxxxxxxxx$ npm install$ npm run dev
node.js をインストールし、CSS/JS の構築
https://github.com/sutara79/demo-laravel-crud/tree/5.7/resources/lang
ja.json ファイルをダウンロードし、resources/lang/ の中に配置
※ ja フォルダには入れないこと
ログインが成功するとダッシュボードに転送されてしまうので、転送されないように変更する。
app/Http/Controllers/Auth/LoginController.php
xxxxxxxxxx//protected $redirectTo = RouteServiceProvider::HOME;protected $redirectTo = "/";
「test」という名前のページを作ることを前提に説明します
./routes/web.php に以下の記述を追加
xxxxxxxxxxRoute::get('/test', function () { return view('test');});実際にアクセスした場合に表示させるHTMLの記述を記載します。
resources/views/test.blade.php を作成する。
xxxxxxxxxx<!DOCTYPE html><html lang="en" dir="ltr"><head><meta charset="utf-8"><title></title></head><body>TESTページだよ</body></html>
xxxxxxxxxxphp artisan make:controller TestController
routes/web.php にコントローラのURLの記述を行う。
xxxxxxxxxxRoute::get('/test', 'App\Http\Controllers\TestController@test');
パス指定の時の頭の文字は大文字、「app」フォルダ名の「a」は小文字だが、大文字で書かないと Not Found になってしまう。
※Laravel7x までは TestController@test のみで問題なかったが、8x からフルパス記載でないと稼働しない。
x<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller{public function test(){echo "Controllerの表示";return view('test');}}
./resources/views/test.blade.php
xxxxxxxxxxVIEWの表示<br>
http://localhost/laravel/public/test
xxxxxxxxxxControllerの表示VIEWの表示
routes/web.php にコントローラのURLの記述を行う。
xxxxxxxxxxRoute::get('/test2', 'App\Http\Controllers\TestController@test2');
test の環境をそのままで test2 にアクセスしたときに test2 固有の動きをする
xxxxxxxxxx<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller{public function test(){echo "Controllerの表示" . "<br>";return view('test');}public function test2(){echo "Test2のControllerの表示" . "<br>";return view('test');}}
URLが test2 の時に固有の処理をするが view は test を読み込む
http://localhost/laravel/public/test
xxxxxxxxxxTest2のControllerの表示VIEWの表示
./app/Http/Controllers/TestController.php
xxxxxxxxxx<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller{public function test(){echo "Controllerの表示" . "<br>";$controller_display = "CONTROLLER_DISPLAY_文字";return view('test',compact('controller_display'));}}
return view の部分に compact('controller_display')という風に変数名を$を付けずに記載する。
resources/views/test.blade.php
xxxxxxxxxx{{ $controller_display }}
controller 側で指定した compact に記述した変数を$を付けて記載する。
./app/Http/Controllers/TestController.php
xxxxxxxxxx$array = [['Sun', '1201'],['Mon', '1202'],['Tue', '1203'],['Wed', '1204'],['Thu', '1205'],['Fri', '1206'],['Sat', '1207']];return view('test',compact('controller_display', 'array'));
resources/views/test.blade.php
xxxxxxxxxx@foreach($array as $value){{ $value[0]}} {{$value[1] }}<br>@endforeach
デフォルトで作られる Migrations の中身を表示する一連の流れを作る
xxxxxxxxxxphp artisan make:model Migrations
xxxxxxxxxxnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Models\Migrations;class TestController extends Controller{public function test(){echo "Controllerからの表示";$migrations = new Migrations;$migrations_value = $migrations->find(1);return view('test', compact('migrations_value'));}}
use App\Models\Migrations;
$migrations = new Migrations;
$migrations_value = $migrations->find(1);
return view('test', compact('migrations_value'));
xxxxxxxxxx<!DOCTYPE html><html lang="en" dir="ltr"><head><meta charset="utf-8"><title></title></head><body>{{ $migrations_value['migration']}}</body></html>
コントローラで取得した migrations_value の中から migration の項目の値を抜き出す。
Model が存在することで、migrations テーブルにある列名である id, migration, batch の名前を指定するだけでその列名の情報を抜き出すことができる。
xxxxxxxxxx<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Models\Migrations;use Illuminate\Support\Facades\DB;class TestController extends Controller{public function test(){echo "Controllerからの表示";$migrations = new Migrations;$migrations_value = DB::table('migrations')->get();return view('test', ['migrations_value'=> $migrations_value]);}}
use Illuminate\Support\Facades\DB; この行を追加するとDB関数が使える
xxxxxxxxxx<!DOCTYPE html><html lang="en" dir="ltr"><head><meta charset="utf-8"><title></title></head><body>{{$migrations_value}}</body></html>
xxxxxxxxxxControllerからの表示 [{"id":1,"migration":"2014_10_12_000000_create_users_table","batch":1},{"id":2,"migration":"2014_10_12_100000_create_password_resets_table","batch":1},{"id":3,"migration":"2014_10_12_200000_add_two_factor_columns_to_users_table","batch":1},{"id":4,"migration":"2019_08_19_000000_create_failed_jobs_table","batch":1},{"id":5,"migration":"2019_12_14_000001_create_personal_access_tokens_table","batch":1},{"id":6,"migration":"2020_05_21_100000_create_teams_table","batch":1},{"id":7,"migration":"2020_05_21_200000_create_team_user_table","batch":1},{"id":8,"migration":"2020_09_15_074453_create_sessions_table","batch":1}]
xxxxxxxxxxcomposer require laravel/ui --devphp artisan ui bootstrapnpm install && npm run dev
xxxxxxxxxxphp artisan make:migration create_test_table
database/migrationsディレクトリに作成した migration ファイルを編集する。
xxxxxxxxxx$table->id();$table->integer('date', 8)->uniqe();$table->integer('count',8);$table->timestamps();
以下のコマンドを実行してテーブルの作成
xxxxxxxxxxphp artisan migrate
参照するテーブルのモデルを作成する
xxxxxxxxxxphp artisan make:model Item
Controller に以下の行を追加
xxxxxxxxxx$items = \DB::table('items')->get();return view('user.index', ['users' => $users]);
xxxxxxxxxx$counter_info = \DB::table('table_name')->get()->count();