PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【Laravel】クエリビルダ メソッド編

DBクラスよりも簡単にSQLクエリ文を生成できる
クエリビルダのCRUDメソッドをまとめます。

検索編

where

引数にフィールド名(=カラム名)と値を指定することで
条件に合致するレコードに絞り込みます。

where(フィールド名, 値);
orWhere

複数の条件のどれか1つでも合致すればすべて検索する。

where(フィールド名, 値)->orWhere(フィールド名, 値)
whereRaw

検索条件を文字列で指定する。
パラメータ配列に対応した条件設定メソッド。

whereRaw(条件式, パラメータ配列);
orderBy

取り出すレコードの順番を指定。
ascは昇順、descは降順。

orderBy(フィールド名, 'ascまたはdesc')
offset

指定した位置からレコードを取得。
offset(10)とすると最初から10個分移動し
11個目からレコードを取得する。

offset(整数)
limit

指定した数だけレコードを取得。
limit(10)とすると10個だけレコードを取得する。

limit(整数)

生成編

insert

レコードの新規追加を行う。
引数には保存するフィールド名をキーとする連想配列を用意。

DB::table(テーブル名)->insert(データをまとめた配列);

更新編

update

レコードの更新を行う。
引数には保存するフィールド名をキーとする連想配列を用意。

DB::table(テーブル名)->where(更新対象の指定)->insert(データをまとめた配列);

更新対象を指定しないとすべてのレコード内容を更新するので要注意

削除編

delete

レコードの削除を行う。
引数は無く呼び出すだけで実行できる。

DB::table(テーブル名)->where(更新対象の指定)->insert();

削除対象を指定しないとすべてのレコード内容を更新するので要注意

【Elixir】見た目はRuby?Elixirってなに?

Elixir(エリクサー)とは

elixir[不老不死]
ErlangVM上で動く関数型言語
コンパイルすることでErlangの実行環境である
BEAMのバイトコードを出力する。

出生

・誕生
2012年
・作成者
Jose Valim
・主な用途
Webアプリ
・分類
関数型/インタプリタコンパイラ

関係ワード

Phoenix

Elixirで実装されたWebアプリフレームワーク
「channel」と呼ばれる双方向の
リアルタイム通信機能を備えている。

Ecto

Elixirの公式プロジェクトで
データベースをラップするORマッパーに
相当する役割を果たす。

Mix

プロジェクトの作成から、テストまで
管理できるビルドツール。
依存関係を管理することもでき
リモートからパッケージを取得できる。

【Laravel】クエリビルダ

クエリビルダ

SQLクエリ文を生成するために生成された一連のメソッドです。

DB::table

指定したテーブルの「ビルダ」を取得します。 Illuminate\Database\Query名前空間にある BuilderクラスSQLクエリ文を 生成するための機能を提供します。

$変数= DB::table(テーブル名)

【Laravel】DBクラスの利用

DBクラスとは

Laravelに装備されている 最もシンプルなデータベースアクセス機能です。 このクラスにはデータベースを利用するための 様々な機能が用意されています。

DB::select

DBクラスにある静的メソッドで SQLクエリを実行し結果となるレコードを取得するものです。 メソッド名から想像がつくように select文を実行するものと考えてください。 以下のように呼び出します。

$変数 = DB::select( 実行するSQL文 );

DB::insert

レコードの追加を実行します。 insert文を実行するものと考えてください。 戻り値を設定する必要はありません。

DB::insert(  クエリ文, パラメータ配列);

DB::update

レコードの更新を実行します。 update文を実行するものと考えてください。

DB::update(  クエリ文, パラメータ配列);

DB::delete

レコードの削除を実行します。 delete文を実行するものと考えてください。

DB::delete(  クエリ文, パラメータ配列);

 homebrewとは

はじめに

いつも使っているMac book
パッケージマネージャーはbrewを使っています。

いつも何気なく使っているbrewですが、よくわかっていないのにネットの情報をコピペ→実行してしまうときがあります。
今回はそんなhomebrewについてちょっと調べてみました。

 homebrewとは?

wikipediaによるとこうなっています。

Mac OS Xオペレーティングシステム上でソフトウェアの導入を単純化するパッケージ管理システムのひとつである」

実行ファイルや設定ファイル、ライブラリetcを一つのファイルとしてまとめているものをパッケージと呼びます。
パッケージ管理システムとはこのパッケージのインストール(アンインストール)作業を一元的管理するものです。パッケージやライブラリの依存関係などが管理できます。
ちなみにパッケージ管理には、

  1. バイナリを取得するもの
  2. ソースコードを取得してビルドするもの

のパターンがあるみたいです。
1バイナリとはソースコードを予めビルドした成果物を配布していることを指すようです。
なので1バイナリは2ビルドよりも早くインストールできる特徴を持っているようです。
それに対して2ビルドは、自分のmacでビルドするので自分のmacに最適化出来る特徴を持っているようです。

macを使う方であればmacportsfinkを使っている場合もあるかと思います。少し前まではmacportsが人気だったりしたようですね。

【Laravel】バリデーションの検証ルール

Laravelに用意されてるバリデーションの
主な検証ルールについてまとめます

accept

項目がtrue,on,yes,1といった値かどうか確認する

url

urlの形式で書かれているかどうかを確認する

active_url

アドレスで指定されたドメイン
実際に有効なものかどうかを確認する

after: 日付

指定した日付よりも後かどうかを確認する

after_or_equal: 日付

指定した日付と同じかそれより後であるか確認する

before: 日付

指定した日付よりも前かどうかを確認する

before_or_equal: 日付

指定した日付と同じかそれより前であるか確認する

【Laravel】Redirectorの主なメソッド

ルートおよびactionを指定する

ルートの情報設定やコントローラのアクションを指定する場合に使用する。

redirect()->route(ルート名,配列)
redirect()->action(アクションの指定,配列)

ビューを指定する

ビューを指定してリダイレクトします。
アクションメソッドなどで
return viewするときに用いられる
名前と同じものです。

redirect()->view(ビュー名)

JSONデータを返す

JSONデータをクライアントに返す場合に用いられるものです。
引数にはJSON形式のテキストを指定します。
これで指定のJSONデータを指定することができます。

redirect()->json(テキスト)

ファイルを返す

ファイルをダウンロードしたり、
表示したりするためのものです。
引数には利用するファイルのパスを
テキストで指定します。
ファイルをダウンロードしたり
PDFやイメージファイルを
表示させたりすることが簡単にできます。

redirect()->download(ファイルパス)
redirect()->fie(ファイルパス)