Laravelのメモが見つかったので、ちょっと書いておこう。 Laravel懐かしいなあ。サービスプロバイダーとか最初意味わからなかったわ。
使うためには色々必要
laravelはライブラリをcomposerインストールしただけでは使えない。 providersやaliasに追加しないといけない。さらにコントローラーで使う場合には、最初の方にuseで指定しなければならない。 redirectとかも必要だから、なんかうまくいかないなあと思ったら確かめてみるといいかも。
use Activation; use Mail; use Sentinel; use App\User; use App\Http\Controllers\Controller; use App\Notifications\RegisterNotify; use Illuminate\Support\Facades\Validator; use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Http\Request;
こんな感じになる。ORMでモデルを使う場合にもモデルの読み込みが必要。めんどい。
providers
サービスプロバイダーを利用して初期起動処理を行っている。 config/app.phpファイルのproviders配列がlaravelプロジェクトのためにロードされる。
- Laravelのコアサービスのサービスプロバイダー
- アプリケーション固有のサービスプロバイダー
- 自分で、Composerを使って追加したパッケージのサービスプロバイダー
これらがあるらしい。
middleware
状態をチェックするものらしい。アクションの前後に実行される。 例えば、ユーザーがログインしているかどうかなどの際に役立つ。
ユーザーが認証されていなければ、このミドルウェアはユーザーをログインページへリダイレクトします。反対にそのユーザーが認証済みであれば、そのリクエストがアプリケーションのその先へ進むことを許可します。
deviseでいうauthenticate_user!みたいなことをやってくれるみたい。laravelではそれをmiddlewareっていうのが担っているのかな。
変数の受け渡し
変数を一つ受け渡す場合はcompact関数又はwithメソッドで送信。 compactの方が可読性が高いのでそちらを使うことが多い。変数受け渡す記述わざわざしないといけないのか、めんどい。 compact関数の場合
testController.php public function test() { $test_1 = "テスト"; return view('test.normal',compact('test_1')); }
withメソッドの場合
testController.php public function test() { $test_1 = "テスト"; return view('test.normal')->with('test_1',$test_1);
レコード作成
laravelでは簡単にレコード作成を許してくれない。 ①該当のモデルファイルに書き込むカラムを宣言する。これがないと値入らない。
protected $fillable = [ 'name', 'user_id', ];
②コントローラーの上の方に使うモデルを読み込む
use App\Upload; use App\User;
③createメソッドでレコードを作成する。
Upload::create([
'name' => $filename,
'user_id' => Auth::user()->id,
]);
ちょっとめんどい。
phpはデフォルトで2MBまでのアップロードしか許していないらしい
phpはデフォルトで2MB以上のファイルがアップロードできないみたいです。
いくらファイルアップロードの設定変更してもうまくいかないのはこれか・・・
public以下を読み込む設定になっている
Laravelはpublic以下のファイルを読み込むようになっている。 つまり、パスの指定はpublic以下から指定する。cssやjsの読み込み。
viewでphpを使う
viewでphpのロジックを記述する際は@を使って書くことができる。ifとか。
@foreach($all_uploaded_files as $file) {{$file->user->name}} @endforeach
変数の展開は{{}}で行う。