Illuminate\Http\JsonResponseインスタンスからjsonを取り出す

レスポンスをjsonで返すapiを別のアクションで呼んでその結果に対して配列処理をかけたい場合。 参考 laravel.com そのapiが下記のようにレスポンスを返す場合はIlluminate\Http\JsonResponseインスタンスが結果として返されている。 return response()->jso…

syncで生成されるSQL

参考 多対多 概要 Eloquentのメソッドにsyncというのがある。 これはbelongsToManyの定義されている多対多のリレーション下で使うことができる。 これによって要素同士の関連を定義することができる。つまり自動で中間テーブルを作ることができる。 $team->u…

条件分岐の処理を書くときに気をつけること

例 それぞれの変更理由 特に重要だと思うこと 例 if文の処理を下のように3ステップで考えていく。 if文によって処理自体を条件分岐させる。これで意図した動きにはなっている。 $response['name'] = 'default' . $extention; if( !is_null( $request->file_n…

ソフトデリート

参考 Laravel 5.3 Eloquent:利用の開始 概要 laravelのEloquentではモデルのソフトデリートを行うことができる。 ソフトデリートとはいわゆる論理削除のことで物理削除のように実際にデータを削除するわけではないが該当のデータを削除したものをして取り扱…

外部キー制約を付けるときのマイグレーションで気をつけること

要約 外部キー制約を設定するときは外部キーにunsigned制約を付ける。 外部キーと対象のプライマリーキーが完全に同じ型である必要があって、プライマリーキーには自動的にunsignedがかかっているから。 エラー内容 Illuminate\Database\QueryException : SQ…

トレイト

php

参考 トレイト 概要 コードをまとめて再利用するための仕組み。 メソッドをまとめて書いておき、使用したいクラスで呼び出すことでそのクラスでメソッドを定義したかのように使用することができる。 クラスに似ているがトレイト自身のインスタンスを作ること…

クエリビルダ

参考 PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 概要 クエリビルダはsqlを作って実行するための仕組み。 Eloquentも内部的にクエリビルダのインスタンスを持っている。 メソッド sqlの関数に即したメソッドを持っている。 s…

要件の確認について

手戻りを最小限にするために重要 はっきりとわからないことがあるときはそれが明確になるまで別の言い方で質問して確認するようにする。自分の理解を自分の言葉で伝えて間違いを指摘してもらえるようにする。当然ながら自分がどういう風に理解しているかは相…

デバッグについて

ブラウザ var_dump();die(); {{var_dump()}} {{die()}} die('ok'); chrome 検証ツール Restlet Client - REST API Testing Laravel Debugbar Logging /storage/logsに出力する ブラウザ var_dump();die(); viewを返す場合。 ()内の値を確認できる dd()でも可…

gitまとめ

git

参考:git--local-branching-on-the-cheap gitとは? ソースコードのバージョン管理のためのソフトウェア。 コマンドでソースコードの状態を以前の状態に戻したり、同じソースコードを異なるバージョンとして管理することができる。 リモートレポジトリへgit…

Doctrine\DBAL\DBALException : Unknown database type enum requested.

概要 参考 エラーの内容 回避の方法 概要 Doctrine\DBALを インストールしてカラムに変更を加えるマイグレーションを実行しようとすると発生するエラーとその回避の方法についてです。 参考 https://stackoverflow.com/questions/33140860/laravel-5-1-unkno…

Laravel Migration(カラム属性変更)

概要 参考 ファイル生成コマンド ファイルの構造 実行 カラム変更 カラムの属性変更 確認 概要 Laravelでカラムに属性を変更したい時のマイグレーション。 参考 Laravel 5.6 データベース:マイグレーション ファイル生成コマンド $ php artisan make:migrat…

パーフェクトPHPで学習中(chapter5)

PHP

参考 chapter5 クラス 継承 オーバーライド parentキーワード インスタンスの生成 アクセス修飾子 this staticプロパティ staticメソッド 名前空間 概要 定義 インポート 参考 パーフェクトPHP chapter5 クラス 継承 PHPでは継承は下記のように行う。 class …

パーフェクトPHPで学習中(chapter4)

PHP

参考 chapter4 制御構造 文(statement)とグループ文 式(expression) 制御構文に関する別の構文 do-while for 関数 関数の呼び出し コールバック関数 無名関数 参考 パーフェクトPHP chapter4 制御構造 制御構造はプログラムの実行の流れを制御する役割をもつ…

パーフェクトPHPで学習中(chapter3)

PHP

参考 chapter3 型 論理型 演算子 可算子・減算子(インクリメント・デクリメント) 型演算子 参考 パーフェクトPHP chapter3 型 論理型 PHP 型の比較表 phpでは文字列"0"などでもfalseになる。 演算子 可算子・減算子(インクリメント・デクリメント) イン…

パーフェクトPHPで学習中(chapter2)

PHP

参考 chapter2 関数とメソッド 文 PHP_EOL 変数 概要 可変変数 変数のスコープ グローバルスコープ ローカルスコープ 定義済み変数 スーパーグローバル変数 定数 定数定義 参考 パーフェクトPHP chapter2 関数とメソッド PHPでは関数とメソッドには必ず()を…

rails でRDBにツリー構造を持たせるには

参考 概要 model DB method 参考 SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル Railsで木構造を扱うには awesome_nested_set 概要 railsでデータにツリー構造を持たせたい必要がでたので調べてみた。RDBでツリー構造を表現する方法は 隣接リス…

CLIでgitレポジトリ初期化からpushまで

git

git では GUI のクライアントソフトを使っていたが、なぜか最近うまくうごかいないので、いっそのこと CLI での操作を覚えたいと思います。 参考 macでgit使いになるために抑えておきたいコマンド(基礎編) リポジトリを作るには対象のディレクトリまで行っ…

GitHub の草

git

ふと、コミットしてるのに草生えないのはなんでろう?と寂しい気持ちになったので調べてみた。 コミットに使用されるメールアドレスがGitHubアカウントに紐づいている必要があるということがわかりました。 $ git config --global user.name "My Name" $ git…

accepts_nested_attributes_forの使い方

参考 何がしたいか モデルで accepts_nested_attributes_for を宣言 form を作る view でネストするパラメータを作るための form を作成 ストロングパラメータ save ポイント まとめ 参考 http://kzy52.com/entry/2013/07/10/200144 何がしたいか form でネ…

エラーメッセージ

<% if teacher.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(teacher.errors.count, "error") %> prohibited this teacher from being saved:</h2> <ul> <% teacher.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> 上記はエラーメッセージを表示…

『AWSをはじめよう』で学習①

AWS

参考 物理サーバと仮想サーバ オンプレミスとクラウド VPS とクラウド AWSをはじめる IAMユーザ CloudTrail EC2 AMI インスタンスのタイプ セキュリティグループ SSH 参考 AWSをはじめよう 物理サーバと仮想サーバ 物理サーバは普通にそこにあるサーバ。 仮…

トランザクション処理

実装 構文 ポイント 追記 実装 同時に保存すべき項目があったのでトランザクション処理にしてみた。 def create Teacher.transaction do @teacher = Teacher.new(teacher_params) @school = @teacher.build_school(school_params) @teacher.save! @school.sa…

『DNSをはじめよう』を読む

参考 route53 whois / dig a オプション mx オプション ns オプション txtオプション -xオプション 参考 DNSをはじめよう route53 route53はAWSの提供するDNSのサービス。ドメインのゾーンを作成できる。 ちなみにec2は Elastic Compute Cloud の略。AWSでは…

MVCについて

よく見るMVCの図 僕がイメージするMVC インスタンスに仕事を覚えてもらう コントローラの処理もまとめる よく見るMVCの図 いつものmvc もちろんこれは筋が通ってる。 ①ブラウザとかのクライアントサイドからアプリへリクエストを送る。 ②それを routes.rb が…

カンバン方式で生産性向上を図る

前書き 進捗が可視化されてモチベーションを保ちやすい。 タスクの細分化 スループットを意識しやすくなる。 今取り組んでいる作業に集中しやすくなる。 参考にしたもの 前書き 生産性を上げるためにできることについて考えてみました。今はやっていますが、…

i18nの利用

何がしたいか 辞書ファイル アプリの設定 viewでの活用 何がしたいか 例えばenumを使うときにはキーとなる文字列をviewで表示したいけど、そのままでは英語表記になってしまう。その場で変換するコードを書いたんではenumの意味がない。そういうときに予め辞…

一つのフォームから複数のモデルを保存

何がしたいのか? view コントローラ 感想 追記 何がしたいのか? belongs_to/has_manyの関係を持つ2つのモデルのインスタンスをbelongs_to側のformから同時に作成したい。 view form.fields_for のようにして params を入れ子にすることは避けた。理由はリ…

google map API でrailsアプリにmapを描画

前書き 参考 内容 結論 その他 前書き rails でモデルが持っている住所情報からgoogleマップを表示するjsを書いたときに詰まったのでメモ。 参考 地名や住所から緯度・経度を取得する 内容 google map api では緯度経度からmapを描画することになっている。…

Scrapy Item Pipeline

参考資料 バージョン 概要 具体例 その他 activating-an-item-pipeline-component (重要) pythonのインスタンスメソッドとクラスメソッド pymongo 参考資料 Item Pipeline — Scrapy 1.5.1 documentation バージョン Python 3.6.5 Scrapy 1.5.1 pymongo 3.7.2…