LAMP環境-- XAMPP
エディタ環境--ATOM
$ dnf install composer
root ユーザではインストールできないので一般ユーザでインストールします。
xxxxxxxxxx
$ composer global require laravel/installer
.bash_profile に以下の記述を追加
xxxxxxxxxx
export 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 の設定が必要になります。
xxxxxxxxxx
location /lavavel/public/ {
try_files $uri $uri/ /paybbs/paybbs/public/index.php?$query_string;
}
プロジェクトフォルダ直下の「.env」を編集します。
xxxxxxxxxx
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=password
xxxxxxxxxx
$ php artisan ui vue --auth
$ php artisan migrate
login の挙動をするための環境構築(パッケージインストール)とテーブル作成を行う
データベースの設定が問題なければ、テーブルの作成が自動で行われます。
xxxxxxxxxx
$ npm install
$ npm run dev
node.js をインストールし、CSS/JS の構築
xxxxxxxxxx
composer require laravel/jetstream
php artisan jetstream:install livewire --teams
php 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 に以下の記述を追加
xxxxxxxxxx
Route::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>
xxxxxxxxxx
php artisan make:controller TestController
routes/web.php にコントローラのURLの記述を行う。
xxxxxxxxxx
Route::get('/test', 'App\Http\Controllers\TestController@test');
パス指定の時の頭の文字は大文字、「app」フォルダ名の「a」は小文字だが、大文字で書かないと Not Found になってしまう。
※Laravel7x までは TestController@test のみで問題なかったが、8x からフルパス記載でないと稼働しない。
x<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function test()
{
echo "Controllerの表示";
return view('test');
}
}
./resources/views/test.blade.php
xxxxxxxxxx
VIEWの表示<br>
http://localhost/laravel/public/test
xxxxxxxxxx
Controllerの表示
VIEWの表示
routes/web.php にコントローラのURLの記述を行う。
xxxxxxxxxx
Route::get('/test2', 'App\Http\Controllers\TestController@test2');
test の環境をそのままで test2 にアクセスしたときに test2 固有の動きをする
xxxxxxxxxx
<?php
namespace 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
xxxxxxxxxx
Test2のControllerの表示
VIEWの表示
./app/Http/Controllers/TestController.php
xxxxxxxxxx
<?php
namespace 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 の中身を表示する一連の流れを作る
xxxxxxxxxx
php artisan make:model Migrations
xxxxxxxxxx
namespace 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
<?php
namespace 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>
xxxxxxxxxx
Controllerからの表示 [{"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}]
xxxxxxxxxx
composer require laravel/ui --dev
php artisan ui bootstrap
npm install && npm run dev
xxxxxxxxxx
php artisan make:migration create_test_table
database/migrationsディレクトリに作成した migration ファイルを編集する。
xxxxxxxxxx
$table->id();
$table->integer('date', 8)->uniqe();
$table->integer('count',8);
$table->timestamps();
以下のコマンドを実行してテーブルの作成
xxxxxxxxxx
php artisan migrate
参照するテーブルのモデルを作成する
xxxxxxxxxx
php 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();