Archives by date

You are browsing the site archives by date.

【PHP/Javascript】switch(true)のイディオム。

switch文に関してかなり便利なイディオムを見つけたのでメモ。
switchの引数にtrueを渡しcase句で式を評価させることで、多分機のif elseif文をスッキリと記述することが出来る。

■PHPの場合

switch (true) {
	case $a == 1:
		break;
	case $a == 2:
		break;
	case $b == 5:
		break;
}

■Javascriptの場合

switch (true) {
	case x == 1:
		break;
	case x == 2:
		break;
	case x == 3:
		break;
}

どうやら賛否両論あるイディオムみたいだけど、breakをちゃんと書き忘れなければいいんじゃないかな。
と思う。

 

【Symfony2.3】JMSserializerを用いた際にEntityのjson化深度を設定する。

JoinしまくってるDBなどで、引っ張ってくる深度を設定したい場合
下記のようにMaxDepthを設定してやることで制御可能。

※公式クックブックまんま引用。

use JMS\Serializer\Annotation\MaxDepth;

class User
{
    private $username;

    /** @MaxDepth(1) */
    private $friends;

    /** @MaxDepth(2) */
    private $posts;
}

class Post
{
    private $title;

    private $author;
}

さらなる詳細は下記URLを参照されたし。

http://jmsyst.com/libs/serializer/master/cookbook/exclusion_strategies

 

【Symfony2.3】AllayCollectionの中身を空にする。

すごく説明しづらい。
ようはEntity内にある外部Entityが格納されているメンバ変数を空にしたい時。

ArrayCollection()のclear()メソッドを実行してやれば空にすることが出来る。

例。

$entity->getCategories()->clear();

的な感じ。

詳細は下記URLを参照。

http://stackoverflow.com/questions/11895533/how-to-clear-or-empty-the-array-collection-in-doctrine-symfony

 

【Symfony2.3】リクエストオブジェクトからポストされた値など全てを取り出す。

メモ。

$data = $this->getRequest()->request->all();

リクエストオブジェクトが注入されている場合は下記のような感じ。

$data = $request->request->all();

 

【AngularJS】チェックボックスを上手に処理する方法。

stackoverflowで素晴らしい対応を見つけたのでメモ。

http://stackoverflow.com/questions/14514461/how-can-angularjs-bind-to-list-of-checkbox-values