サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
yashio.wordpress.com
cakePHP2.1の ファイルアップロード ファイルダウンロード をやってみようと思います。ひとまずファイルアップロード用にテーブル作成します。 今回は、ファイルの実体は特定のディレクトリに保存するので、ファイルの実体はDBには保存しません。 mysql> desc upload_files; +----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | u
cakephpでメール送信 テンプレートで作成した本文で送信したい 簡素なもので、あんまり設定条件がいっぱいあるのは後回し。まず送信したい。 …というわけで鼻の黒い人も使っているQdmailを使うことに。レッツトライ! Qdmailをもってくる Qdmailのサイトから本体をダウンロードいたします。本家サイトの言われるとおりに app/controllers/components/ にダウンロードしたファイルを設置。 そのあとコントローラーに下記を記載。私は共通で使う可能性があるのでapp_controller.phpに。他のものも使ってるので追記。 var $components = array('Auth','DebugKit.Toolbar','Qdmail'); 次にコントローラーに以下のようにかいてね、とある。 $this->Qdmail->to( 'mail@XXX.com'
今日もお酒のまないんで、ひとつ記事かいてねることにします。本日もcakePHP2.1のお話です。 さて、設定ファイルでデータベースに持つ程でもない情報というのは、かつてconst.phpに書いてました。 ところが例えば男・女 とか、普遍的なものだったりあまり情報が書き換わらないものって結構あります。 で、設定ファイルが結構カオスになってたりします。 今回は、設定情報もこんなふうに持つと良いよってことで、https://github.com/cakephp/datasources/tree/2.0/Model/Datasource ここからArraySource.phpだけをいただきます。そんでapp/Model/Datasourceにポロリと入れます。 次に、設定です。database.phpにこんな記述を足します。既存のデータベースの設定に追加してくださいね。 var $ArraySou
何かというとcakeでは通常$model->delete();すると物理削除でレコードごとなくなりますが、 これがあら不思議!このビヘイビアを使うと論理削除にしてくれます。 通常のdelete()呼び出しで物理削除ではなく、deletedに1 が入り、delete_dateフィールドに日時が入る 該当するモデルは何もしなければdelete = 0 である条件を必ずつけてくれる というものです。いや幸せ。 さて準備です。GitHubのcakeDCから ここにあるSoftDeleteBehavior.phpだけをapp/Model/Behaviorにぶっこんでみます。 例としてモデルは、User.phpにしてみましょう。 私のモデルは、既にACLのビヘイビアが設定されていますが、それに追加してあげればいいですね。 public $actsAs = array( 'Acl' => array(
先日からSearchPluginを使った画面周りの実装してます。 今回は特に、一対多データの扱いについてです。 ブログにタグをつけたチュートリアルが結構あるので、HABTMデータは結構ありますね。 今回の実際はHABTAMではなく、中間テーブルを介在しません。 その1.企業モデルに「属性」を外だしで複数持たせる。(いわば、タグと同じ) その2.属性は複数もてるが、マスターテーブルは持たない。 その3.属性テーブルはid,company_id,nameという構成。 というちょっと特殊なケースかもしれない。でも よくあるUseとPostの関係だと思ってもらってもいいです。 ただし、属性自体を「AND」条件で検索したい。というのが味噌です。 SearchPluginの準備 app配下にSearchというディレクトリ掘って、GitHubのこちらを 一式ごっそりおきます。 bootstrap.php
こんにちは。本日12月9日担当の@yashioです。 来週はいよいよcake勉強会and忘年会ですね(∩´∀`)∩ワーイ皆さんにあえるの楽しみにしています。 さて今回は、1.3系で・・しかも出尽くされていると思いますがViewキャッシュ導入について紹介したいと思います。 いろいろな方がこちらは紹介されていますが、私でもできるヨ!ってことで生暖かく見てください。 頑張って図つけたわ。。これが一番時間かかったとか・・・・。 ・登録者向けのサービスだが、ログイン前にランディングページなどの静的なページを多用している ・できるだけ、ウェブサーバーへの負荷を軽減したい などの時にぜひ。 レシピ:cake1.3、 https://github.com/mcurry/html_cacheからダウンロードしてきた一式 手順その1: https://github.com/mcurry/html_cache
今日は違うことをブログにかこうとしたのに…! いままでdebugを3にして動かしていたのだけどAjaxの関係で0にしたら、とたんにあるページのレイアウトがおかしくなった。どうやら、ビューテンプレートのdefault.ctpがよみこまれず(失敗?)CSSも呼ばれない。意味不明だったので、仕方なくどこでそうなってるのか調べてみた。そうしたところ、 <?php echo $number->currency($user_data['price'],null,array('thounsands'=>',','places'=>0));?> ここをコメントアウトしたらレイアウトが戻ってきた。3のときは表示されていたのだけど、0にしたらとたんに表示されないって…?エラーで出力されないかもしれないけど…。3にしたときに確認をしたのだけど、ページには何のエラーもない(noticeもない)ので、関数でエラーが
大分ご無沙汰しております。ビールがおいしい季節になりました。 cakePHPは、modified,createdなんてフィールドを予め作成しておくと、新規作成・更新の際に勝手にデータをinsert,updateしてくれるというお便利機能があります。 先日、以前と同じように更新のため、 $this->User->save($this->data); なんて処理をしていたときに、突然、「更新日時が更新されない」という現象に遭遇しました。 実は、探してみると mysqlの設定が悪い そもそも、hiddenとかでPOSTしてた という人たちの記事があって、はじめはそこを疑いました。ですが以前はきちんと動いていたのに、突然save()時に更新日時modifiedが更新されない現象だったので、他の原因を探ってみました。 結論からいうと、ここのsaveの直前に $this->User->id = use
cakephpで作ったサイトを公開する でも公開サイトなので、プログラムがwebroot配下に設置するのはイヤだ。 ということで記事のまとめ。実際には本家サイトにくわーしくかいてある。ので参考にしてください。鼻の黒い人どうもありがとう。 ここでは /home/yashio/site/ というsiteフォルダがcakephpフォルダだと思って話を進めます。(cakephp→siteフォルダにリネーム) /home/yashio/public_html/ にapp/webroot/の中身を全てコピーします。ここが公開されるディレクトリになります。 /home/yashio/ にsiteフォルダを設置。(すでにもうwebrootフォルダは移動しているので、ない。) 編集するのは/home/public_html/site/index.php を編集します。 if (!defined('ROOT'
はいっ!9時までにアップしますよ!ってことで今日ついったーでも同じ記事が流れたけど自分的メモ。 やりたいこと。 ブラウザを閉じたらログイン情報を破棄する まずはapp/core.phpの中身を確認。ここいらがポイントか。 Configure::write('Session.save', 'cake'); Configure::write('Session.timeout', '120'); Configure::write('Security.level', 'middle'); Security.levelの値と、セッションのタイムアウト時間によって実際のタイムアウト時間が設定される。で、Security.levelが mediumの場合、ブラウザを閉じてもセッション情報は削除されない。そりゃこまる。というわけでhighにしたいんだけど、highにすると色々不具合がでるんだよね…。なので
cakephpでjqueryを使って一覧の特定のデータを変更したい。 テキストのものは以前やったことあるので楽そう。ドロップダウンリストを使いたい。 というわけでどうせまたあとから調べることになるだろうから…。自分的メモ。 まず、準備。コントローラーに下記を追加(Ajax,RequestHandler) var $helpers = array('Html', 'Form','Ajax'); public $components = array('RequestHandler'); ここからjquery.jeditable.jsをダウンロードし、 app/webroot/に設置。もちろんjquery.jsも設置。 コーディング的には… ・クリックしたときにドロップダウンリストを表示するが、そのときのデータを取得する。 ・クリックしてリスト内容を変更した場合に、データを更新する。 ・更新処理
わからなくてもういやだ><だったAuthCompornent。 正直、タイプミスとかで動かないのかと思ってたけど、認識がそもそも…。な事が原因だった。 前回のブログだと何がしたいのか、わかりづらいので、まとめる。 やりたかった事 ユーザをつくる。ユーザは、グループA、グループBのどちらかに属す。(Aモデル、Bモデル)。 ユーザを作成したあとに、ログインすると自分が属しているページに遷移したい。 A組の人はA/index,B組の人はB/indexに遷移したい。 →そのためには、AuthCompornentを利用し、ログイン後にリダイレクト先を操作したい。 やったこと 標準的なusersテーブルを作成。 Aモデル、Bモデルは実装しないで$scaffoldで組み立てる。 usersテーブルには、mail,password,kindなぞを持たせる。認証はmail,passwordで。 AuthCo
このページを最初にブックマークしてみませんか?
『Yashio's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く