やったこと

webサービスを作るときに考えたことを垂れ流します

【CakePHP3】テーブルを完全初期化してリセットする方法!

CakePHP3でMySQLテーブルのレコードを削除して真っ白に初期化する方法です。

これをするとテーブルのIDインクリメント情報も初期化されます。

//コネクションマネージャーを宣言
use Cake\Datasource\ConnectionManager;

//テーブル内を真っ白に削除
$connection = ConnectionManager::get('default');
$results = $connection->execute('TRUNCATE TABLE テーブル名'); 

「テーブル名」を指定するときは、ちゃんとMySQLで宣言している名前を入れるようにご注意ください。

CakePHPだと「TwitterUsers」とか表現するテーブルも、MySQLだと「twitter_users」という名前のはずですからね。

以上!

ツイッターカードのサムネイルはツイッターにアップされた画像は使えない!

webサイトに埋め込む「TwitterCard」の情報ってありますよね?

以下のような感じでhtmlに記載する、ページがつぶやかれた時にかっこよい形式で表示してくれるやつです。

  <!-- Twitter Card -->
  <meta name="twitter:card" content="summary">
  <meta name="twitter:description" content="ホゲゲ">
  <meta name="twitter:title" content="ホゲゲゲゲ>">
  <meta name="twitter:url" content="http://hogege.net">
  <meta name="twitter:image" content="http://hogege.net/img/hoge.jpg">
  <meta name="twitter:domain" content="hogege.net">
  <meta name="twitter:creator" content="@hogehoge">
  <meta name="twitter:site" content="@hogehoge">
  <!-- /Twitter Card -->


上記のアイキャッチ画像を指定する「image」の項目って、どうもツイッターにアップされた画像は使えないみたいですね(pbs.twimg.comの画像を指定すると灰色画像になって表示されませんでした・・)

pbs.twimg.com」にある画像を使いたいときは、自前で画像をコピーしてどこかのサーバーに用意するしかなさそうですね、とっても残念です・・。

以上!

【CakePHP3】EC2サーバーからRDSに接続するときのhost設定は?

アマゾンAWSのEC2サーバにCakePHP3を設置して、RDSサーバー(DBサーバー)に接続しようと思ったんですけど、CakePHPの「app.php」の設定にちょっと迷ってしまいました・・。

「Datasources」の「host」項目ってどうやって入力すればいいんでしょうかね・・?

「Datasources」の「host」項目には、以下のようにRDSサーバーの「DNS名」を入れると、名前解決をしてに接続に行ってくれるみたいです。

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'hogege-db.qwertyuiop.ap-northeast-1.rds.amazonaws.com',

とっても新設設計ですね・・。

以上!

ムームードメインで「管理者情報の町村/番地が不正です」って怒られる

ムームードメインの設定で「WHOIS情報の変更」をしようとすると

「管理者情報の町村/番地が不正です」

とエラーが出て怒られてしまいました・・。

この原因はおそらく「個人設定 - ユーザー登録情報」の設定が間違ってるせいです。

この項目の「お客様情報」の入力判定はクッソ厳しいので、死ぬほど気を付けて文字を入力してください。
(私の場合は住所1と住所2の入力の仕方が悪くてエラーになっていたみたいです)

詳しくは公式ヘルプをご覧ください
https://muumuu-domain.com/?mode=faq&state=answer&id=000718

以上!

【CakePHP3】サイトにrobots.txtを設置する!

CakePHP3のサイトに「robots.txt」を設置する方法です。

やり方はめっちゃ簡単。「/webroot」のディレクトリ直下に「robots.txt」を作成して置いておくだけです。

これでブラウザからあなたのサイト「http://hogegege/robots.txt」にアクセスすると、robots.txtが表示されるはずです。

以上!

【CakePHP3】ページタイトルの設定方法!

CakePHP3でページタイトルを設定する方法です!

以下のようにするとページタイトルを出力できます。

  //ビューやコントローラー内で指定
  $this->set('title', 'Test Page Title!');
  //レイアウトファイルなどでタイトル出力
  <title><?= $title ?></title>

ちょう簡単ですね・・。

以上!