ラボ > Laravel、Lumen:基本、views関連
Laravel myチートシート
作成日:2019-03-25, 更新日:2022-12-22
PATHと内容
バージョンや運用者によっては構成が変わるコトもある。
下記は「Laravel 5.7.28」をベースに少しフォルダやファイルを追加した状態
親 | PATH | めも |
---|---|---|
app\ | app\Http\Controllers | 各コントローラーたち |
app\ | app\Http\Middleware | ミドルウェアたち |
app\ | app\Http\Kernel.php | ミドルウェアの登録設定 |
app\ | app\helpers | 独自関数置き場(フォルダ名は任意で作成) |
app\ | app\model | モデル置き場(フォルダ名は任意で作成) |
app\ | app\Providers | プロバイダー置き場 |
app\ | app\Validator\CustomValidator.php | 独自のバリデーション(フォルダ・ファイル名は任意で作成→プロバイダーで設定必要) |
app\ | app\〇〇〇 | 他にもいくつかあるが未調査 |
config\ | config\app.php | プロバイダーやヘルパー関数の設定、その他色々 |
config\ | config\〇〇〇 | 他にもいくつかあるが未調査 |
resources\ | resources\lang\〇〇〇 | 各言語別の設定(バリデーションの日本語化などで利用) |
resources\ | resources\views | 各ビューファイルたち |
resources\ | resources\〇〇〇 | 他にもいくつかあるが未調査 |
routes\ | routes\api.php | ルーティング設定:「/api/〇〇〇」でアクセスがあったとき専用 「app/Providers/RouteServiceProvider.php」の「mapApiRoutes()」でURLなどの設定アリ |
routes\ | routes\web.php | ルーティング設定 |
routes\ | routes\〇〇〇 | 他にもいくつかあるが未調査 |
vendor\ | vendor\laravel\framework\src\Illuminate\〇〇〇 | あちこちにある「use Illuminate\〇〇〇」たちのPATH |
.env | .env | 各種環境、初期設定(ステージングやテスト環境、DBの接続先など) |
ルーティング:routes/web.php
・「http://example.com/zebra/〇〇〇」のアクセスは
・「コントローラー:app\Http\Controllers\zebra\Controller.php」を呼び出す
※第一階層のURLはどうするのが正解なのかは、まだ不明(ひとまず「root\Controller.php」を呼び出すようにする)
▼prefixとnamespaceでグループ化
// 「URL:/〇〇〇」は「コントローラー:root\Controller.php」を呼び出すが正解か? Route::namespace('root')->group(function () { Route::get('/', 'Controller@index'); Route::get('hello/{hoge?}', 'Controller@hello'); }); // 「URL:/zebra/〇〇〇」は「コントローラー:zebra\Controller.php」を呼び出す Route::prefix('zebra')->namespace('zebra')->group(function () { Route::get('/', 'Controller@index'); Route::get('hello/{hoge?}', 'Controller@hello'); }); // 「URL:/kushi/〇〇〇」は「コントローラー:kushi\Controller.php」を呼び出す Route::prefix('kushi')->namespace('kushi')->group(function () { Route::get('/', 'Controller@index'); Route::get('hello/{hoge?}', 'Controller@hello'); });
他
コントローラー:app\Http\Controllers\〇〇〇\Controller.php
<?php namespace App\Http\Controllers\〇〇〇; // ルーティングでのnamespace('zebra')やnamespace('kushi')になる部分 use Illuminate\Http\Request; class Controller extends \App\Http\Controllers\Controller { public function index() { // 「ビュー」で使いたい値たち $viewData = array( 'data1' => '〇〇〇', 'data2' => '〇〇〇', ); // 「ビュー:resources\views\〇〇〇\index.php」を呼び出す return view('〇〇〇.index', $viewData); } public function hello($hoge='') { // 「ビュー」で使いたい値たち $viewData = array( 'hoge' => $hoge, ); // 「ビュー:resources\views\〇〇〇\hello.php」を呼び出す return view('〇〇〇.hello', $viewData); } }
ビュー:resources\views\〇〇〇\〇〇〇.php
▼コントローラーから渡してもらった値($viewData['hoge'])を使う場合
{{$hoge}}
URLの作成
「http://localhost/laravel-test」の中でURLを作ってもらう。
記述 | 出力結果 |
---|---|
echo url(''); | http://localhost/laravel-test |
echo url('/'); | http://localhost/laravel-test |
echo url('/aa'); | http://localhost/laravel-test/aa |
※「ヘルパー関数」ってヤツ
URLやPATHの確認
formタグ関連
「Bladeのディレクティブ」ってヤツを使う。
ビューに記述(ビュー以外で使えるかは未調査)
記述 | 出力結果 |
---|---|
@method('put') | <input type="hidden" name="_method" value="put"> |
@csrf | <input type="hidden" name="_token" value="〇〇〇〇〇"> |
<input type="hidden" name="_token" value="{{csrf_token()}}"> | <input type="hidden" name="_token" value="〇〇〇〇〇"> |
「@method()」「@csrf()」は便利なんだけどわけが分からんようになるから好きじゃない・・・
とは言っても「_token」や「_method」が変更されてしまうコトなどを考えると使ったほうが良さげ。
あとインデントされていると「@method()」「@csrf()」でHTMLが汚くなる・・・。
→出力されたHTMLのインデントなんか気にしなければ良い。
テンプレート絡み
独自関数
DB絡み
ログ絡み
・設定、バージョンにもよるが、ひとまず「storage\logs」の下にいる
関連項目
・Laravel Xamppにインストから最低限のセットまで