2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

laravelの基本のき【個人的なお勉強アウトプット】

Last updated at Posted at 2022-03-18

参考図書

laravelのインストール

laravelはComposerからインストールする。
composer create-project laravel/laravel laravelapp --prefer-dist
インストールしたあと、インストールしたアプリケーションフォルダからターミナルでphp artisan serveでアプリケーションを実行する。
実行しhttp://localhost:8000にアクセスするとlaravelの初期画面が表示される。
なぜ表示できるかというと、laravelはPHP本体にあるサーバ機能をつかって開発環境用のサーバーを立ち上げている。
ただし、動作確認用の簡易的なものであり、本格運用に耐え得るほど堅牢なサーバーではない。この機能をつかってアプリケーションを公開してはいけない。

公開パスの変更

laravelをそのまま公開すると、ルートパスはhttp://ドメイン/laravelのプロジェクト名/publicとなる。
/がルートパスになるよう、サーバー側で表示設定をする。

MAMPの場合は以下
MAMP/conf/apache/httpd.conf

Alias / "/Applications/MAMP/htdocs/laravelapp/public/"

<Directory "/Applications/MAMP/htdocs/laravelapp/public/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

laravelプロジェクトでよく使うフォルダ

  • app
  • routes
  • resources

appはもっとも重要かつ頻度が高い
プログラムを色々と作っていく場所
Httpフォルダの中に基本的なプログラムを作成していく
コントローラーもこの中に入れる
コントローラーは慣習的にapp/ControllersとしてControllersフォルダの中にまとめる

routesはルーティングを設定するところ
resourcesは表示するテンプレートを置くところ

ルーティング

laravelはルーティングでアドレスと読み込み・表示される処理を紐付けている
ルーティングの設定はroutesフォルダの中で設定している

Route::get('hello', 'App\Http\Controllers\HelloController@index');

Routeクラスにgetメソッドを実行している。
第一引数にパス、第二引数にコントローラー名@アクションを設定。

コントローラー内のアクション

アクションとは、コントローラーの中で定義する関数
例えば以下のindex

class HelloController extends Controller
{   
    public function index(){
        $data = ['one','two','three','four','five'];
        return view('hello.index', ['data'=>$data]);
    }
}

表示するテンプレートの指定

viewメソッドで表示するテンプレートを指定している。
第一引数で表示するテンプレートを指定。
上記の例だとテンプレートは以下
/resources/views/hello/index

コントローラーからビューへの変数の渡し方

第二引数でテンプレートに変数を渡している
テンプレートでは配列のキーの名前が変数の名前として使える。
上記の例の場合は、$dataとして$dataの配列が渡される。

public function inde($id='zero'){
$data = [
'msg' => 'こんにちは',
'id'=> $id
]
return view('hello.index', $data);
}

上記の例の場合は、テンプレートで$msg、と$idが使える。

テンプレート

テンプレートは普通のPHPスクリプトファイルとして記述する方法と、laravelが用意しているBladeというテンプレートエンジンを使うことができる。
Bladeには効率的にレイアウトを作成していくための機能があるので使っていったほうがよい。
Bladeを使う場合はファイル名にindex.blade.phpとする。
index.phpと両方ある場合はindex.blade.phpが優先して読まれる。

bladeの記法

bladeファイル内では変数は
{{$msg}}のように使う。
また、bladeにはデフォルトでいくつかの構文が用意されている。
@for@foreach@if@isset@unless@empty
また、@loopというループ処理に関わる色々な情報を取り出せる構文もある。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?