CakePHPクッキング

「 投稿者アーカイブ:柴田 篤志

」 一覧

flash messageをカスタマイズする

基本的な使い方 flash messageの使い方はコントローラーでメッセージを次のようにセットします。 結果はこのようになります。 [adsense] c

続きを見る

Shellを実行

cronやコマンドラインからCakePHPを動かしたい時にはシェルを作成して、それを実行します。 基本的にはControllerと同じような作りになっています。 シェルの基本 ファイルは、a

続きを見る

Facebook用にOGP対応してくれるヘルパー

GitよりOGPプラグインをダウンロード まずはGitに公開されているCakePHP OGP Pluginをダウンロードします。 https://github.com/monsat/Ogp

続きを見る

画像や様々なファイルをDBに格納

画像やWord、Excel、PDFなど様々なファイルをアップロードさせたい時に、そのデータをサーバー上に保存するのも一つの方法ですが、DBに保存してしまう方法もあります。 格納するテーブルを作成

続きを見る

日付のセレクトボックスの作り方

日付のセレクトボックスを作るにはFormヘルパーを使うのが便利です。 ただし、初期状態では日本人には使いにくくなっていますので、少しカスタマイズが必要です。 日付のセレクトボックスの基

続きを見る

データキャッシュ

CakePHPにはデータキャッシュやビューキャッシュなどのキャッシュ機能がついています。 ビューキャッシュについては以下を参考にしてください。 http://cakephpクッキング.jp/arc

続きを見る

コンポーネントでモデルを呼び出す

コントローラーの肥大化を防ぐ方法として、コンポーネントに集約するやり方があります。 コンポーネントにコードを持っていった場合に、そこでモデルを呼び出すには次のように行います。 [ad

続きを見る

view blocksの使い方

レイアウトに出力する内容で、個々のアクションごとに異なった内容を出力したい場合、コントローラー側で個々の設定をセットするという方法もありますが、そうするとコントローラーの肥大化につながってしまいます。

続きを見る

リファラーを取得する

何か処理をさせて元のページにリダイレクトさせたり、何らかのチェックのためにリンク元を取得したいことがあります。 そういった場合にリファラーを取得しますが、CakePHPでは専用の関数が用意されていま

続きを見る

セレクトボックスでグループ分けするならHash::combineが便利

Hash::combineを使ってセレクトボックスを作る コントローラー側 ビュー側 これでセレクトボックスを作ることができます。 [adsense] find('lis

続きを見る

トランザクション

CakePHPではトランザクションを簡単に使うことができます。 まずは、Model内でデータソースを取得します。 そのデータソースを使って、トランザクションを開始・コミット・ロ

続きを見る

Basic認証

簡単に認証機能をつけたい時に使うのが、Basic認証。 .htaccessを使うのが通常ですが、今回はCakePHPを使ってBasic認証をやってみましょう。 データベースを作成する 最低限

続きを見る

Socket通信

CakePHPでsocket通信を行うにはHttpSocketクラスを利用します。 getリクエスト getリクエストを行う場合には下記のようにします。 [adsense]

続きを見る

データベースを持続的接続にする方法

データベースの持続的接続を行いたい時、MySQLならmsql_pconnect()、PostgreSQLならpg_pconnect()を使います。 これらの関数をCakePHPで使うにはどのようにし

続きを見る

routes

CakePHPのルール通りのURLを使う分には問題ないのですが、http://example.com/10 などのように独自のURL構成にしたい場合は、ルーティング機能を使うことで対応できます。 ル

続きを見る

404エラーページをカスタマイズ

CakePHPではエラーページが用意されていますが、味気ないものなので、カスタマイズしていきましょう。 開発時のエラーページ debug>0の時には例外処理が働いて、より細かな状況を教えてくれ

続きを見る

日付フォーマットヘルパー

日付を表示する際、毎回date関数でフォーマットを指定するのは面倒です。 それを簡略化してくれるヘルパーを使いましょう。 日付ヘルパーを作成 まずはヘルパーを作成します。 app/

続きを見る

テーブルのカラム名を一発で取得する

テーブルのカラム名を取得 テーブルの全てのカラム名を取得したい場合はModelで次のようにします。 こうすると、次のような形式で値が返ってきます。 キーにカラム名で、値に型が入り

続きを見る

ページ送り

GoogleやYahooなどの検索結果のページでよく見る1ページ目、2ページ目、前のページヘ、次のページヘなどのページ送り。 これを素のPHPで書こうとすると結構面倒ですが、CakePHPのPagi

続きを見る

MySQLやPostgreSQLで型変換してデータ取得する

text型のカラムに数値データを入れていて、その最大値を取得したい時にそのまま実行すると、 (そもそも型の指定がおかしいというのは置いておいて) このようなコードになり、numberに

続きを見る

URLやメールアドレスに自動でリンクを貼ってくれるヘルパー

文章の中に書かれたURLやメールアドレスにリンクが貼りたい時に便利なヘルパーがあります。 URLにリンクを貼るautoLinkUrls まずはURLに自動でリンクを貼る方法ですが、autoLi

続きを見る

Prefixルーティング

管理画面などで/admin/users/edit/5のようなURLでUsersコントローラーのeditアクションを使いたい場合にPrefixルーティングを活用します。 Routing.prefi

続きを見る

Modelの使い方

Modelはどんどん詰め込みすぎていくとメンテナンスし難い状態になってしまいます。 ではどのようにしたら良いのか。それに対する一つのアイデアとしてShinbaraさんが書いているCakePHP Mo

続きを見る

テーマ機能

コントローラーでの設定 テーマを使うにはコントローラーに次のように設定します。 [adsense] 各ビューの設定 次にビューですが、設置場所はapp/View/Themed/内

続きを見る

Bootstrap3を使う

管理画面などを作るのに便利なCSSフレームワークのBootstrap。(記事公開時の最新バージョンは3.1.1) CakePHPに簡単にBootstrapを導入する方法を見ていきましょう。 B

続きを見る

メンテナンスモードを簡単実装できるMaintenance plugin

サイト全体へ影響するようなバグ修正や機能追加などのために、一時的にサイトをメンテナンスモードにする必要がある場合があります。 そのような時に簡単にメンテナンスモードに変更できるプラグインが Main

続きを見る

指定文字数を抜粋して表示するTEXTヘルパー

ヘッドラインや検索結果など、ある程度長い文章の一部だけを表示させたいケースがあります。 そんな時に便利なヘルパーがCakePHPには3つ用意されています。 それでは一つずつ見ていきましょう。

続きを見る

inputタグのrequired属性

Formを作成する時に利用するFormヘルパー。 CakePHP2.3からinputタグにrequired属性が追加されました。 inputタグのrequired属性 下記のようにバ

続きを見る

ラジオボタンの作り方

基本の作り方 Formヘルパーのradioメソッドを使います。 選択肢は第二引数に配列で渡します。 [adsense] fieldsetを非表示にする 第三引数にオプションを渡

続きを見る

パンくずリストを作る

パンくずを作る方法を見ていきましょう。 要素を追加 addCrumbを使ってパンくずの要素を追加していきます。 [adsense] パンくずリストを出力する getCrum

続きを見る

WordPressとCakePHPの共存

サイトを作るのに便利なWordPress。プラグインも数多く用意されて

サイトマップの作成方法

Googleのウェブマスターツールに渡すためのサイトマップの作成方法で

INSERTしたIDを取得する

データを保存した後にINSERTされたデータのIDを使って何かの処理を

ファイルの存在確認やフォルダー内のファイル一覧取得

特定のファイルの存在を確認したい場合や特定のフォルダー内にあるファイル

リンクの最後に常にスラッシュをつける方法

URLの最後に常にスラッシュをつけるかつけないかを統一する方法は、UR

countやsumを使う時のフィールド名を指定する

CakePHPでcountやsumなどを使う場合、ちょっとした工夫が必

Formの便利な使い方

問い合わせフォームや会員機能など、WEBサイトを作る際に必ず必要になる

ヘルパーをオーバーライドする

CakePHPで便利な機能が詰まったヘルパーですが、時々もう少しこうだ

特定の時だけSQLの条件を追加するならSet::mergeを使う

SQLの条件を追加したい時に使うのがarray_mergeなどですが、

ページネーションではDISTINCTではなく、GROUP BYを使う

重複したデータを省く時に使うDISTINCTですが、ページ送りで使う時

Model内で別のModelを呼び出す

モデル内で別のモデルを使いたいケースがあった場合、次のようにすることで

CakePHPでGoogleAnalyticsAPIを使う

CakePHPでGoogleAnalyticsを使う方法について見てい

独自のfindを定義するfindMethods

findをより便利に、よりスッキリ書くのに、findMethodsを使

TCPDFを使ってCakePHPでPDFを作成

CakePHPでPDFを作成するには幾つかの方法がありますが、今回はT

JavaScriptをコードの最下部に配置

SEOの観点からJavaScriptのコードは一番下に記述したいところ

無限スクロールをさせる

TwitterやFacebookのタイムラインを見ていて、ページの下に

PHPExcelの導入

ExcelにDBのデータを表示して一覧を作ったり、請求書などのフォーマ

Warning: SplFileInfo::openFile〜の警告が表示されたら

ShellとWEBの両方で同一のModelを呼び出す時に「Warnin

連結されていないデータを抽出

通常、テーブルを連結してデータを取得するには、アソシエーションを利用し

データを取得する

データを取得したい時に少し変わった条件で取得したい場合があります。

PAGE TOP ↑