2018-01-01から1年間の記事一覧
Localeディレクトリのパーミッション ロケールの設定(config/app.phpの'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'), キャッシュの削除
Usersテーブルをbakeすると、emailのバリデーションは次のように自動生成されます: $validator ->email('email') バリデーションに失敗した場合はThe provided value is invalidと出ます。 これを変更するときに $validator ->email('email','メールの形式…
beforeSaveの場合 public function beforeSave($event, $entity, $options) { // 何らかの処理 return true; } saveの第2引数を指定します: if ($this->Users->save($user, ['key' => 'value'])) { 参考URL: https://api.cakephp.org/3.6/class-Cake.ORM.Ta…
usersテーブルを作り、./cake bake all usersと実行するとadd/edit/view/index.ctpが生成されます。 しかし先日、何かのきっかけでlogin.ctpが生成されるのを目撃してしまいました。 login.ctpを作るのは難しくないですがなぜ、生成されるときとそうでないと…
*isUnique $validator ->email('email') ->requirePresence('email', 'create') ->notEmpty('email') ->add('email', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); 上記と、 $rules->add($rules->isUnique(['email'])) はなぜ両方必要…
みなさん、Seedファイルの読み込みどうしていますか? 僕はこんな感じで: cd /var/www/html/app/bin for i in `basename -s .php -a ../config/Seeds/*` do ./cake migrations seed --seed ${i} done 楽ですが、シードファイル間で依存があるとダメなんです…
めっちゃ簡単で、inline=trueを指定するだけです: echo $this->Form->control('priority_id', ['options' => $priorities, 'type' => 'radio', 'inline' => true]);
マイナーチェンジのようで、結構大きな変更があるので以下にまとめています(随時更新) インストール 3.4の場合は、 composer create-project --prefer-dist cakephp/app:3.4.* app と指定したところ、3.4.2が入りました。 3.5の場合は、 composer create-p…
Friendsofcakeのbootstrapプラグインを導入すると、 echo $this->Form->control('title'); といった記述をするだけで次のマークアップを吐いてくれます: <div class="form-group text required"> <label class="control-label text-left col-sm-2 col-md-2" for="title">Title</label> <div class="col-sm-6 col-md-6"> </div></div>
$firstname = $this->Users->find()->where(['id' => $user_id])->first()->firstname; もっと美しいやり方をご存知でしたら教えてください〜 関連エントリ: thebaker.hatenablog.com
原因はいろいろあるようですが、僕の場合はこのように変更する必要がありました: 変更前 <button type="submit" id="post-button">送信</button> 変更後 <button type="button" id="post-button">送信</button> Firefox以外は変更前でも動くのですが…(IE11, Edge, Safari, Chrome)
第2階層のclassにcollapseを追加すれば回避できます: <ul class='nav nav-second-level collapse'></ul>
bitbucketの場合 git init git remote add origin git@bitbucket.org:username/repository.git git add . git commit -m "first commit" git push origin master githubの場合は2行目がgit remote add origin git@github.com:username/repository.gitになる
これまでprefixルーティングではadminくらいしか使ったことなかったのですが、ふと、 adminFeaturesとか複数の単語を使った場合はどうなるんだろう?と思っていました。 結論から書くと、こうします: URL: /admin-features/コントローラ/アクション routes.…
friendsofcakeのbootstrapプラグインを導入してみました。が、美しく無い… プラグインはいくつか有りますが、bake用のテンプレートが欲しかったのでfriendsofcakeにしました。 以下、CakePHPが/var/www/html/appにインストールされている前提です。 bootstra…
CakePHP3.4ではこう書きます: public function beforeFilter(Event $event) { parent::beforeFilter($event); $this->Auth->allow( ['index'] ); // indexへのアクセスにおいてSecurityコンポーネントをOFFにする $this->Security->config('unlockedActions…
とある開発においてSMSの送信をすることがあり、SMSの事業者からコールバックを受ける必要がでてきました。 開発環境でBASIC認証をかけているので、コールバックを受けるURLだけを開放したい。 だけどCakePHPでは.htaccessによってURLをrewriteしているので…
URLをパースするの、面倒ですよね。URI.jsが便利なので使いましょう: <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.19.0/URI.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> let uri = new URI(); let functions = ['hostna…</head></html>
いつももやもやするので、備忘録として。仮にこんなデータがあるとします: id name 1 New York 2 Tokyo 3 London そして次のデータを抜き出したいとします: ['New York', 'Tokyo', 'London'] 実行するのはこいつです: $this->loadModel("Cities"); $citie…
実際にやってみて、気づいた点を列挙します。 対応ブラウザ HTML5 AudioはIE11やモバイルを含めて対応しています。 Web Audio APIはIE11で未対応です オーディオファイルのダウンロード HTML5 Audioでは何もしなくても分割ダウンロードが行われます(ブラウ…
auのSHL23を使っているのですが遅いです。Snapdragon 800なのに…そしてAndroid 4.2とOSが古く試験に利用するには不適切なことから機種変更をしました。できればおさいふケータイが使える国産端末がよかったのですが高いのですよね。安い端末だとシャープのSH…
Pagesはページをどんどん作れて便利ですがURLが長いですよね/Pages/display/ページ名。 そこでルーティングを使ってこれを短縮します。 書くまでも無いかもしれませんが…routes.phpに次を追加します: $routes->connect('/ページ名', ['controller' => 'Page…
業務でAndroid端末が必要になって買いました。26000円。 動作はサクサク、ingressもサクサク動きます。 さてカメラをiPhone 6sと比較してみました: 上がiPhone 6s、下がP10 Liteです。 パット見、P10 Liteのほうが綺麗ですよね。 ただ、暗部を見てみるとiPh…
ご自由にご利用ください。country_idは1にしています: INSERT INTO states (id, name, abbrev, country_id,display_order) VALUES (1,'Alabama','AL',1,990); INSERT INTO states (id, name, abbrev, country_id,display_order) VALUES (2,'Alaska','AK',1,…
仮に、こちらのURLを: /Japan/Posts/view/10 PostsControllerのviewアクションにマッピングしたいとします。 (つまりJapanってのはURLに入っているけど捨てることになります) この場合、routes.phpに次を追加します: $routes->connect('/:country/Posts/…
サーバ側でモバイル端末を識別するニーズがあり、MobileDetectというのを導入してみました: mobiledetect.net 導入方法ですが、composerを使うと簡単です: composer require mobiledetect/mobiledetectlib Cakeの中のプログラムから利用するには、useを使…
Cycle2というとても使いやすい、jQueryのプラグインがあります。 幾つか詰まった点があったのでここで紹介します。 基本的な使い方 まず、jQueryとこのプラグインを読み込みます: <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script src="http://malsup.github.com/jquery.cycle2.js"></script> 次に画像タグを以下のように<div>で括ります: <div class="cycle-slideshow"> …</div></div>
お客様より、アクセス数の多いページをサイドバーに表示したいとの相談があり、調査してみました。 Wordpress Popular Postsというプラグインを使うと、実現できます。 アクセス数を計測する対象を固定ページと投稿の両方、固定ページだけ、投稿だけから選べ…
固定ページに投稿の一覧を差し込みたいな、と思っていてやり方を探っていました。 大きく分けて3つ、やり方があります: 1) page-ID.phpを作成する wp-content/themes/テーマ名のディレクトリに移動すると、page.phpというファイルがあります。 これをコピー…
WordPress初心者なのですが、メニューの表記を英語にしたいな、と思ってここをいじってみました: すると驚いたことに、TOPページに表示するコンテンツのうち、 一部を抜粋する機能が動かなくなったのです: 本来はこうあるべきです: 対策ですが、サイト全…