CakePHP2のアップロードプラグイン「Upload」で画像を上げ直す処理を書いてみた

こんにちは!

今日はCakePHP2のプラグインである「Upload」プラグインで画像をあげなおす処理を書いてみます。
結果的に無理矢理感が出てしまってますが、とりあえず実装は出来るってことでw
綺麗に書きたい〜〜

“CakePHP2のアップロードプラグイン「Upload」で画像を上げ直す処理を書いてみた” の続きを読む

CakePHP2で1段階以上先のリレーション先にもデータを保存する

Q. CakePHP2でリレーション先までデータを保存したい

A. saveAllメソッドにdeepオプションを渡してあげましょう。


・ArticleがItemを複数持ち、ItemはMetaItemを複数持っている(Naverまとめ的な)

Article.php

 array(
            'className' => 'Item',
            'foreignKey' => 'article_id',
            'dependent' => true
            )
    );
}

Item.php

 array(
            'className' => 'MetaItem',
            'foreignKey' => 'item_id',
            'dependent' => true
        )
    );
}

MetaItem.php

 array(
            'className' => 'Item',
            'foreignKey' => 'item_id'
        )
    );
}

保存するデータの構造

array(
    'Article' => array(
        ...
    ),
    'Item' => array(
        (int)0 => array(
            ...
        ),
        (int)1 => array(
            ...
            'MetaItem' => array(
                (int)0 => array(
                    ...
                ),
                (int)1 => array(
                    ...
                )
            )
        )
    )
)

使うメソッド

$this->Article->saveAll($data, array('deep' => true));

・コメント
なぜかリレーションが1段階先しか保存してくれない!!って困ったのでぐぐってみるとdeepオプションというのがあるじゃないですか!
ということで早速使ってみると見事解決。よかったよかった〜〜
適切なデータ構造を作って渡してあげれば適当に処理してくれるCakePHPありがとうございます!!

詳解CakePHP辞典―2.0/2.1/2.2/2.3対応
滝下 真玄
秀和システム
売り上げランキング: 112,599

CakePHP2でhasManyのデータをFormHelperでViewに表示させる

こんにちは!

ModelのhasManyを使って、データをfindしてきたとき、FormHelperでViewにどう表示させるもんか悩んだのでメモ変わりに書いておきます。
多分なんのこっちゃ言ってるかわからないと思うのですが、以下のようなデータがあった場合にFormHelperのデフォルト値に反映させて、まぁいわば編集のような機能をつけたいときに悩んだのです(ようわからん)

array(
    'Article' => array(
        'id' => '1',
        ....
    ),
    'Item' => array(
        (int)0 => array(
            'id' => 1,
            'order' => 1,
            ....
        ),
        (int)1 => array(
            ....
        )
    )
)

こんなデータがあったとします。このデータをControllerからViewに渡していると仮定しときます($this->dataにぶちこむ)
これをFormHelperでぱぱっと表示出来る方法はないかと色々探していたら以下のようなものを見つけました。

How to edit form with hasMany (multiple rows)

ようは以下のような感じです。

data['Item'] as $item){
    echo $this->Form->hidden('Item.' . $count . '.id');
    echo $this->Form->hidden('Item.' . $count . '.order');
    // 必要に応じて増やす
    $count++;
}

// Output
// 
// 
// ...
// 

このようにコードを書けばあるArticleに紐づくhasManyなものをまとめて編集したい!のような要望にも答えられるかと思います。
ただ$countがちょっとださいなぁと。
あともう1階層深いリレーションを表示させようとするとイテレートをもう1段階増やさなければならないのでカウンターも増えてしまうのが嫌だなぁと。

もっとうまい方法があるはずなんですが、もし誰かこうやったほうがよくない?みたいなのがあれば教えてください!!

Webアプリ開発を加速する CakePHP2定番レシピ119
長谷川 智希
秀和システム
売り上げランキング: 17,934

CakePHP2で画像アップロードプラグインである「Upload」を試してみた

みなさんこんにちは!

最近画像アップロードプラグインを色々試しているのでメモしておきますー

今日は「Upload」というプラグインで画像をアップしてみようと思います!
それではいってみましょー!
“CakePHP2で画像アップロードプラグインである「Upload」を試してみた” の続きを読む

CakePHP2をComposerでインストールしてプロジェクトを立ち上げるまで

こんにちは!

そういえばComposerでCakePHPをインストールしたあと実際にアプリ開発を始めるまでの記事を書いていないことに気づいたので書きます!!
Composer、最初いじったときどうしたらいいのかわからなかったのですが最近やっと慣れてきてもう手放せない子になりつつあるのでもしまだ使ってない!って方の手助けが出来ればいいなぁなんて思ってます!

それではやっていきましょう!!
“CakePHP2をComposerでインストールしてプロジェクトを立ち上げるまで” の続きを読む

CakePHP3のdev preview1がリリースされたのでちょっと試してみた

みなさんこんにちは!

ついにCakePHP3のdev preview 1が出ましたね!
CakePHP 3.0.0 dev preview 1 released

テンション上がったので少しですが試してみようと思います。
CakePHP自体の開発スピードが最近上がってきたと感じるのでわくわくしてます。
それでは一緒にいじっていきましょう!
“CakePHP3のdev preview1がリリースされたのでちょっと試してみた” の続きを読む

MacでCakePHP3のインストール時にmcryptが入ってないって怒られたからその時のメモ

みなさんこんにちは!

今日ついにCakePHP3のdev preview 1が出ましたね!
CakePHP 3.0.0 dev preview 1 released

ということで早速インストール・・・しようと思ったのですが色々つまづいたのでメモ

“MacでCakePHP3のインストール時にmcryptが入ってないって怒られたからその時のメモ” の続きを読む