前提知識
namespace…このファイルここに配置されてますよ〜って書いてるやつ
use…他フォルダにあるクラスを利用可能にしたもの
ルーティング
・アドレスに対してコントローラーメソッドを指示する。
・$requestのプロパティの情報を飛ばす
Route::get(アドレス,関数など);
view(テンプレート名)
//指定したテンプレートのファイルをロードし、レンタリング(表示できるように整える)して返す
特定のアドレスにアクセスした際、何の処理を実行するのかを記述したもの。
<?php
Route::get(`/`,function(){
return view(`welcome`);
});
解説
/にアクセスしたらwelcomeのファイルを戻せ(表示しろ)
ルートパラメータの利用
Route::get(`/〇〇/{パラメータ}',function($〇〇//パラメータの値を受け取る引数){
});
Route::get(`/hello/{msg}',function($msg){
});
///hello/sampleにアクセスした場合、msgにsampleが代入される。
解説
アドレスのパラメータをルーティング処理の一部として使いたい
必須パラメータと任意パラメータ
ルートパラメータを利用する際、パラメータを記入されないと処理が実行されないようになっている。
これを必須パラメータと呼ぶ。
しかし、パラメータの変数の最後に「?」をつけることによりパラメータを記入せずとも処理が実行される任意パラメータに変更することができる。
Route::get(`hello/{msg?}`,function ($msg=`〇〇`)
//〇〇には、パラメータが記入されなかった時に出力される文字列を入れる
解説
パラメータ指定されなくても使われたい
コントローラ
・ビュー
∟表示させるものを(return view('ファイル名','配列'))で書く
∟表示させるものに必要なデータを飛ばす
・データベース
Route::get('アドレス','コントローラー名@メソッド名');
ビュー
実際web上に表示させるもの。
Blade構文
PHPを用いて見栄えの良いビューを作れるようになるビューテンプレート
値の表示
{{値・変数・式・関数など}}
{{!!値・変数・式・関数など!!}}
継承
既存のテンプレート(親)再利用して新しいテンプレート(子)を作成する。
親テンプレートにはsectionで子テンプレートに表示する区画を設定する。
子テンプレート側にはsectionを表示されるyieldを用いる。
実際にレイアウト表示されるのは子レイアウトである。
@extends('フォルダ名.ファイル名')
@section(名前)
-表示内容-
@endsection
@yield(名前)
ビューコンポーザ
ビューをレンタリングする時に自動的に実行される処理
これを使えるようにするため、サービス(Laravelの機能強化の仕組み)を動かす必要がありそれを動かすために、サービスプロバイダーを使う必要がある。
サービスプロバイダー
用意されているメソッド
boot
アプリケーションが起動する際に割り込んで実行される処理(ブートストラップ処理)
ここにビューと処理を用意することで、コンポーザが呼び出されるようになる。
(実質、コントローラみたいな役割をはたす)
register
会員登録の処理など…
public function boot()
{
View::composer(
'hello.index', function($view){
$view->with('view_message','composer message!');
}
);
View::composer(ビューの指定,関数またはクラス)
第1引数には、コンポーザーを利用するビューの設定。
第2引数には、実行する処理を書く
$view->with(変数名,値);
$view(Viewクラスのインスタンス)
サービスプロバイダへの登録
サービスプロバイダを作るだけでは作動しない。
app\confungにサービスプロパイダが使えるように登録する必要がある