「 コントローラー(Controller) 」 一覧
-
CakePHP3 Template用にsetした値を参照する方法
2018/11/13 -コントローラー(Controller)
set, Template, viewVarsCakePHP3 Template用にsetした値を参照する方法です。
123456<?php$aaa = 'test';$this->set('bbb', $aaa);var_dump($this->viewVars['bbb']);// 出力結果: test
-
CakePHP3 コントローラーにてURL生成(Router)する方法
◯ CakePHP3 コントローラーにてURL生成(Router)方法
123456789101112131415161718192021222324252627282930<?phpuse Cake\Routing\Router;//// アクセスURL例:https://test.com/contact?test// カレントパス(ドメイン含む)Router::url(NULL, true);-> https://test.com/contact// カレントパスのみ(ドメイン含まない)Router::url();-> /contact// クエリストリングを含むパス(ドメイン含む)Router::reverse($this->request, true);-> https://test.com/contact?test// クエリストリングを含むパス(ドメイン含まない)Router::reverse($this->request);-> /contact?test// 【その他】 サーバー変数($_SERVER)$_SERVER['REQUEST_URI'];-> /contact?test
-
2018/03/30 -コントローラー(Controller)
cache, clear, delete, キャッシュ削除CakePHP3 コントローラーからキャッシュ削除する方法です。 ◯ 「config/app.php」キャッシュ設定サンプル
123456789101112131415<?php'Cache' => ['default' => ['className' => 'File','path' => CACHE,'url' => env('CACHE_DEFAULT_URL', null),],'getShop' => ['className' => 'File','path' => CACHE . 'add/shop/','duration' => '+1 weeks','url' => env ('CACHE_DEFAULT_URL', null)],// ・・・],◯ キャ …
-
2017/12/12 -コントローラー(Controller)
Auth, Cookie, deleteAll, find, TableRegistry, where, サンプルコード, 乱数生成, 自動ログインCakePHP3 自動ログイン(オートログイン)機能のサンプルコードです。 =簡易メモ= ・ユーザーログイン画面にて自動ログインにチェックされていた場合、Cookie(AUTO_LOGIN)セットする …
-
CakePHP3 デフォルトレイアウト(default.ctp)の変更方法
2017/12/07 -コントローラー(Controller)
layout, setLayout, viewBuilder, デフォルトレイアウトCakePHP3 デフォルトレイアウト(default.ctp)の変更方法です。
123456789101112131415class UsersController extends AppController{public function index(){// レイアウト変更// 変更前「src/Template/Layout/default.ctp」// 変更後「src/Template/Layout/test.ctp」// CakePHP ~3.3$this->viewBuilder()->layout('test');// CakePHP 3.4~$this->viewBuilder()->setLayout('test');}}
-
CakePHP3 ImageMagickで写真(画像)リサイズするサンプルコード
2017/12/01 -コントローラー(Controller)
ImageMagick, サンプルコード, リサイズ◯ CakePHP3 ImageMagickで写真(画像)リサイズするサンプルコードです。
123456789101112131415161718192021222324252627282930// サンプルコード// 縦: xxxpx -> 600px// 写真パス$photo_file_path = '写真パス';// 写真読み込み$imagick_img = new \Imagick($photo_file_path);// 写真サイズ取得$img_width = $imagick_img->getImageWidth();$img_height = $imagick_img->getImageHeight();// 写真リサイズ// 縦サイズ601px以上だったら縦サイズ600pxにリサイズ$max_height = 600;if (!empty($img_width) && !empty($img_height) && ($max_height < $img_height)) {// リサイズ処理if (!$imagick_img->resizeImage(0, $max_height, \Imagick::FILTER_POINT, 1)) {// resizeImageエラー}}// 写真上書き保存if (!$imagick_img->writeImage($photo_file_path)) {// 上書き保存エラー}// Imagick clear$imagick_img->clear();関連リンク:CentO …
-
CakePHP3 ImageMagickで写真(画像)圧縮するサンプルコード
2017/12/01 -コントローラー(Controller)
ImageMagick, サンプルコード, 写真圧縮, 圧縮品質◯ CakePHP3 ImageMagickで写真(画像)圧縮するサンプルコードです。
123456789101112131415161718192021222324252627282930313233// サンプルコード// 対象ファイル:JPEG,PNG,GIF// 圧縮品質:80// 写真パス$photo_file_path = '写真パス';// 写真拡張子取得$file_extension = pathinfo($photo_file_path, PATHINFO_EXTENSION);// 写真読み込み$imagick_img = new \Imagick($photo_file_path);// 写真圧縮設定if ($file_extension == 'jpeg' || $file_extension == 'jpg') {$imagick_img->setImageFormat('jpg');$imagick_img->setImageCompression(\Imagick::COMPRESSION_JPEG);} elseif ($file_extension == 'png') {$imagick_img->setImageFormat('png');$imagick_img->setImageCompression(\Imagick::COMPRESSION_UNDEFINED);} else {$imagick_img->setImageFormat('gif');$imagick_img->setImageCompression(\Imagick::COMPRESSION_UNDEFINED);}$imagick_img->setImageCompressionQuality(80);// 写真上書き保存if (!$imagick_img->writeImage($photo_file_path)) {// 上書き保存エラー}// Imagick clear$imagick_img->clear();関連リンク:CentOS6 …
-
CakePHP3 ImageMagickでExifのOrientation情報あったら写真回転する
2017/12/01 -コントローラー(Controller)
EXIF, ImageMagick, Orientation, 写真回転◯ CakePHP3 ImageMagickでExifのOrientation情報あったら写真回転する方法(JPEGのみ)。 [crayon-6508fb697c959903355 …
-
CakePHP3 写真から位置情報(GPS)を取得するサンプルコード
2017/12/01 -コントローラー(Controller)
EXIF, exif_read_data, GPS, latitude, longitude, サンプルコード, 位置情報, 経度, 緯度, 高度◯ CakePHP3 写真から位置情報(GPS)を取得するサンプルコードです。
1234567891011121314151617181920212223242526272829303132333435363738394041424344class UsersController extends AppController{public function index(){// Exif取得(EXIFヘッダを読み込む)$exif_data = @exif_read_data('画像パス');// GPS(緯度・経度)取得if (isset($exif_data) && !empty($exif_data['GPSLatitudeRef']) && !empty($exif_data['GPSLatitude']) && !empty($exif_data['GPSLongitudeRef']) && !empty($exif_data['GPSLongitude'])) {$gps_lat = $this->exif_get_10_from_60($exif_data['GPSLatitudeRef'], $exif_data['GPSLatitude']);$gps_long = $this->exif_get_10_from_60($exif_data['GPSLongitudeRef'], $exif_data['GPSLongitude']);}// GPS(高度)取得if (isset($exif_data['GPSAltitude']) && !empty($exif_data['GPSAltitude'])) {$gps_altitude = $this->exif_convert_float($exif_data['GPSAltitude']);if (isset($exif_data['GPSAltitudeRef']) && ($exif_data['GPSAltitudeRef'] == '1') && !empty($gps_altitude)) {// 海抜0m未満だったら$gps_altitude = ($gps_altitude * -1);}}var_dump($gps_lat); // 緯度:35.728466666667var_dump($gps_long); // 経度:139.70668055556var_dump($gps_altitude); // 高度:42.364415862808}// Exifの位置情報を60進数から10進数に変換private function exif_get_10_from_60($ref, $gps){// 60進数から10進数に変換$data = $this->exif_convert_float($gps[0]) + ($this->exif_convert_float($gps[1]) / 60) + ($this->exif_convert_float($gps[2]) / 3600);//南緯または西経の場合はマイナスにして返却return ($ref=='S' || $ref=='W') ? ($data * -1) : $data;}// 「x/y」という文字列を受け取り、「x÷y」の結果を返すprivate function exif_convert_float($str){$val = explode('/', $str);return isset($val[1]) ? ($val[0] / $val[1]) : $str;}}
-
CakePHP3 Ajax通信でコントローラーの途中で抜ける方法
2017/11/30 -コントローラー(Controller)
Ajax, autoRender, echo, json_encode, returnCakePHP3 Ajax通信でコントローラーの途中で抜ける方法の参考コードです。
12345678910111213public function index(){$this->autoRender = FALSE;$flg = true; // true or falseif (!$flg) {// Ajax戻り値echo json_encode(['status' => false, 'err_msg' => __('サーバーエラーが発生しました。')]);// ここで処理終了return;}}
-
CakePHP3 コントローラーでのtry-catch例外処理の参考コードです。
1234567891011121314151617181920212223use Cake\Core\Exception\Exception; // Exceptionクラスインポートclass UsersController extends AppController{public function index(){try {$flg = true; // true or falseif (!$flg) {throw new Exception(); // 例外エラー投げる}echo 'OK';} catch(Exception $e) {echo 'NG';}}}// 「$flg==true」の場合出力ログ: 'OK'// 「$flg==false」の場合出力ログ: 'NG'
-
2017/11/29 -コントローラー(Controller)
ConnectionManager, データ整合性, トランザクション処理, ロールバックCakePHP3 トランザクション(transaction)処理の流れです。 ※ 複数テーブル更新時などに使用(データ整合性を保つため) [crayon-6508fb697d2cc …
-
CakePHP3 コントローラーでステータスコードを設定する方法
2017/11/29 -コントローラー(Controller)
Forbidden, NotFound, ステータスコードCakePHP3 コントローラーでステータスコード(statusCode)を設定する方法です。
12345// 403 Forbidden$this->response->statusCode(403);// 404 Not Found$this->response->statusCode(404);
-
2017/11/29 -コントローラー(Controller)
destroy, getSession, read, session, writeCakePHP3 コントローラーでのセッション(session)の使い方です。
12345678910111213141516171819202122232425262728293031323334353637// ローカル変数にする$session = $this->request->getSession(); // CakePHP 3.5~$session = $this->request->session(); // CakePHP ~3.4// セッション書き込み$session->write('Config.language', 'ja');// セッション読み込み$session->read(); // 全て$session->read('Config.language'); // キー指定ex)var_dump($session->read()); // array('Config' => array('time' => int 1511915063 , 'language' => string 'ja'))var_dump($session->read('Config.language')); // 'ja'// セッション読み込み後に削除$session->consume('Config.language'); // キー指定ex)var_dump($session->read()); // array('Config' => array('time' => int 1511915063 , 'language' => string 'ja'))$session->consume('Config.language');var_dump($session->read()); // array('Config' => array('time' => int 1511915063))// セッション削除(キー指定)$session->delete('Config.language');// セッション破棄$session->destroy();// セッション存在確認(キー指定)$session->check('Config.language'); // 存在する: true, 存在しない: false
-
2017/11/28 -コントローラー(Controller)
compact, htmlspecialchars, set, パラメーターアサインCakePHP3 コントローラーからビューに値渡す(パラメーターアサイン)方法です。 ◯ コントローラー側(Controller)
12345$test = 'xxx@cakephp3.com';// パラメーターアサイン$this->set('test', $test);or$this->set(compact('test')); // compact: 文字列をキーとして同じ文字列の変数を使用◯ …
-
CakePHP3 GETメソッドのクエリストリングを取得する方法
2017/11/28 -コントローラー(Controller)
Get, getQuery, クエリストリングCakePHP3 GETメソッドのクエリストリングを取得する方法です。
12// 検証URL例/users?email=xxx@cakephp3.com&password=xxx◯ 全クエリストリング取得 [crayon-6508fb697 …
-
2017/11/28 -コントローラー(Controller)
TableRegistry, テーブルオブジェクト◯ CakePHP3 コントローラーでテーブルオブジェクトをロードする方法です。
1234567891011<?phpuse Cake\ORM\TableRegistry; // TableRegistryクラスをインポートclass AppController extends Controller{public function index(){// テーブルオブジェクトロード(usersテーブル)$obj_users = TableRegistry::get('users');}}
-
CakePHP3 Authコンポーネント利用時に公開するアクション設定
2017/11/28 -コントローラー(Controller)
allow, AuthコンポーネントCakePHP3 Authコンポーネント利用時に公開するアクションを設定する。 関連リンク: CakePHP3 Authコンポーネントでログイン・ログアウト機能 Authコンポーネントはデフ …
-
CakePHP3 Authコンポーネントでログイン・ログアウト機能
2017/11/27 -コントローラー(Controller)
Authコンポーネント, loadComponent, サンプルコード, ログアウト, ログインCakePHP3 Authコンポーネントでログイン・ログアウト機能のサンプルコード。 ● 使用例のテーブル定義(usersテーブル)
1234567891011121314// ユーザーテーブル// status 0:仮登録 1:本登録 2:退会CREATE TABLE `users` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,`email` varchar(255) NOT NULL,`password` varchar(255) NOT NULL,`status` char(1) DEFAULT 0,`created` DATETIME DEFAULT NULL,`modified` DATETIME DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;// テストデータINSERT INTO `users` (`id`, `email`, `password`, `status`, `created`, `modified`) VALUES(NULL, '001@cakephp3.com', '001', '0', NULL, NULL),(NULL, '002@cakephp3.com', '002', '1', NULL, NULL);…
-
CakePHP3 コントローラーのモデル関連処理をメソッド化
2017/11/27 -コントローラー(Controller)
Table, メソッド化CakePHP3 コントローラーのモデル関連処理をメソッド化する方法。 ※ DBのデータ取得・更新処理は、モデルに記述することで再利用性およびコントローラーの肥大化防ぐ [crayon-65 …