LoginSignup
0
0

More than 5 years have passed since last update.

【Laravel】基礎知識とroutes編集のサンプル

Last updated at Posted at 2019-04-04

基本知識のノート

Laravelで作成したプロジェクトにはいくつかのフォルダがあるが主要なものは3つ。

  1. app:プリケーションのプログラム部分。
  2. resouce:テンプレートファイルなど。
  3. routes:ルート情報

app

メインに使うのはHttp
これがwebアプリケーションにアクセスした時の処理をまとめておく所。
基本的なプログラムはここで作成。

resouse

ここには例えばViewフォルダなどがあり、
welcome.blade.php(後述)が保存されている。

routes

一般的なwebページはweb.phpにルーティングされている。
ここにルート情報を書き込むことで、
welcome.blade.phpなどのファイルを呼び出すことができる。

ルーティングという概念

routes内ファイルを編集することでルーティングをする。
ここではroutes/web.phpを編集していく。
基本的には以下の形式で記述。

Route::get( 'URLを書く', function(){
    return 処理を書く
});
  • 第1引数はアドレス
    • hello/{msg}という形でパラメータmsgを設定できる。
    • その場合、第二引数はfunction($msg){return ;}のような形に。
  • 第2引数は関数(ここではクロージャ)
    • function() use($html){};として、関数の外に記述しているヒアドキュメント$htmlを用いることもできる。

サンプルコード

ヒアドキュメントをRoute::get();の外側にする場合

$html = <<< EOF
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
<style>
body{font-size:16pt;}
h1{color:#eee;}
</style>
</head>
<body>
<h1>Hello</h1>
<p>This is sample code.</p>
</body>
</html>
EOF;

Route::get('hello', function() use($html){
    return $html;
});

ヒアドキュメントをRoute::get();の内側にする場合
(ルートで渡すパラメータをヒアドキュメントに引用する場合)

Route::get('hello/{msg?}', function($msg){

$html = <<< EOF
<html>
<head>
<meta charset="UTF-8">
<title>Hello</title>
<style>
body{font-size:16pt;}
h1{color:#eee;}
</style>
</head>
<body>
<h1>Hello</h1>
<p>This is sample code.</p>
</body>
</html>
EOF;

return $html;
});

※ここでは任意パラメータ{msg?}にしている。

【補足】ヒアドキュメントの書き方

PHPで記述されたコードにHTMLを埋め込むのがヒアドキュメント。
ヒアドキュメントをPHPに入れる場合は$htmlで入れられる。

<?php
$html = <<<EOF
ここにhtmlコードを記述。
PHP部分で使われている変数をもって来たい場合は{$msg}という形で記述。
EOF;
?>

参考書籍

PHPフレームワークLaravel入門
Chapter2-1 Pp.24

0
0
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
0
0