LoginSignup
0
0

More than 3 years have passed since last update.

【ふくだ学習録】アプリ制作part13【40日目】

Posted at

ふくだ学習録とは?

ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

読了した本

データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
PHPフレームワーク CakePHP 3入門
SQLアンチパターン
Docker入門

今読んでいる本

PHPフレームワーク Laravel入門

アプリ制作

ヒアドキュメントとは?

文字列をシェルスクリプトやプログラミング言語に埋め込むための方法。
複数行の記述などを簡単に記載できるようになる。

example
data =  <<EOS
test
テスト
123
EOS

詳しい記述方法などは下記を参考にする。
ヒアドキュメントとは・基本の使い方(ruby)

【Laravel】パラメータ付きルーティング

必須パラメータの場合

# {}で囲っている部分がパラメータになる
Route::get('hello/{msg}', function($msg) {
 .
 .
 .
 return ...
})

任意パラメータの場合


# 任意にしたいパラメータの後ろに?をつける
# 引数がなかった場合のデフォルト値を指定しておく。
Route::get('hello/{msg?}', function($msg='no message.') {
 .
 .
 .
 return ...
})

【Laravel】シングルアクションコントローラ

「1つのコントローラに対して、1つのアクションだけを定義する」といった設計を行う場合に設定することがある。
設定方法は下記のように、__invokeというメソッドを使用することで実装できる。

HelloController.php
class HelloController extends Controller
{
    # __invokeという名前で一つだけアクションメソッドを作成する。
    public function __invoke() { 
    }
}

web.php
# 第二引数をコントローラ名だけにする('HelloController@__invoke'といった形にしない)
Route::get('hello', 'HelloController')

【Laravel】RequestとResponse

phpではリクエスト情報を取得する際に、$_REQUESTというグローバル変数を使用する。
Laravelではそういったリクエストとレスポンスに関する情報はIlluminate/Http名前空間にある「Request」「Response」というクラスとして用意されている。

【Laravel】@forelse

ディレクトリ構文の中で、@foreach@elseを組み合わせたもの。便利そう。

@forelse( $配列 as $変数 )
# 繰り返し表示するもの
@empty 
# そもそも配列が存在しないとき
@endforelse

【Laravel】$loop変数

Laravelが用意してくれている、繰り返しディレクティブ内で使用できる特別な変数。
例えば、$loop->indexと指定することで、現在のインデックス数を知ることができる。

Laravel コントローラ処理の前、後に別処理を行う方法。

middlewareを使用する。

■前処理の場合

middleware.php
public function handle($request, Closure $next)
{
    # 実行したい処理を記載しておく。
    return $next($request);
}

■後処理の場合

middleware.php
public function handle($request, Closure $next)
{
    $response = $next($request);
    # 実行したい処理を記載しておく。
    return $response;
}

【Laravel】whereとorWhere

where()をメソッドチェーンで複数使用した場合は、全ての条件に当てはまるものが返ってくる。(and条件)
orWhere()の場合はor条件となるので、一つでも当てはまれば返ってくる。

【Laravel】whereRaw

whereメソッドチェーンを複数つなげるのが嫌いな人向けのメソッド。
複数条件を1行で書くことができる。(個人的にはあんまり好きじゃない)

whereRaw('age >= ? and age <= ?', [$min, $max]);

?部分に、第二引数で渡している値が順に入っていく。
:minといった書き方は出来ないので注意。

今日の一言

Laravel良さげ!

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