nginx の alias指定で phpMyAdmin に接続する時の File Not Found エラーの解消法

投稿者: Anonymous CakePHP を動作させる際に phpMyAdmin を設定する際のことに関して質問です。 環境: CentOS6 PHP 5.5 CakePHP 2.6.0 でやっています。 /var/www/phpmyadmin/ に alias 指定でアクセスさせるために質問後半に示すような設定ファイルを書いた結果 http://localhost/phpmyadmin/ でアクセスすることはできたんですが、 File not Found が出てしまいます… 読み込ませるにはどうすればいいでしょうか? 以下 /etc/nginx/conf.d/default.conf に記載した設定 server { listen 80; server_name localhost; #中略 location /phpmyadmin { alias /var/www/phpmyadmin; index index.php; location ~ .php$ { root /var/www/phpmyadmin; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include…(Continue Reading)

cakephp2系でfilebinderのプラグインを使いたいのですが

投稿者: Anonymous お世話になっております。 filebinderをgithubからダウンロードして手順どうりファイルを作成しましたが、 Missing Component Error: TransitionComponent could not be found. Error: Create the class TransitionComponent below in file: app/Controller/Component/TransitionComponent.php とでています。 app/Plugin/Filebinder/Controller/Component にはTransitionComponent.phpは確かに入っておらず、自分で作成、または、他サイトからダウンロードしなくてはならないのですか? よろしくお願いいたします。 解決 fusic/filebinder https://github.com/fusic/filebinder/ こちらのREADMEにあるサンプルでは、TransitionComponentが必要とされていますね。 TransitionComponentは以下から入手できます。 https://github.com/hiromi2424/TransitionComponent FileBinderのサンプルではコンポーネント名の記述が’Transition’のみとなっていますが、TransitionComponentをプラグインとして導入する場合、プラグイン名も含めた記述’Transition.Transition’に変更してください。 回答者: Anonymous

Vagrantを使ったCakePHPのローカル開発環境の作業フォルダの場所

投稿者: Anonymous Mac OS X Yosemite Vagrant VirtualBox Bitbucket を使っていてBitbucketのリポジトリには hoge(開発中のcakePHPアプリケーション) composer.json composer.lock 既にVagrantにはApache+php5.5がインストールされています。 ここで $ mkdir hoge $ cd hoge $ git clone ~ してcomposerを使ってインストールすると自動でcakePHPもインストールされてローカルで開発できるのはイメージできるのですが、この場合git cloneするディレクトリは 自分のPC上(Vagrantfileが置いてあるディレクトリ)でしょうか? それともvagrant sshしてログインした/vagrant上なのでしょうか? 上記のうちのどちらかだとした場合、composer自体のインストールもどちらか片方で構わないということになりますか? 解決 Vagrantの共有フォルダ設定が行われていれば、ホスト側でcomposer installしてもゲスト(Virtualbox)側で行っても結果は変わりません。 ホスト側で実行するのであれば、composer.phar自体もディレクトリ内に存在する必要はありません。 ただし、共有フォルダ設定がrsyncタイプの場合は、ホスト側でcomposer install後に、vagrant rsyncでファイルを同期する必要があります。 回答者: Anonymous

MSSQLテーブル用の、bakeから仕上げた登録画面が、キー自動採取を失敗する

投稿者: Anonymous CAKEPHP3の参考書に従ってbakeコマンドで一連を作成しました。DBをMySQLとしたテーブルの登録画面は無事に操作することができました。 当該テーブルのid列がPrimaryキーで自動採取するタイプでしたが、MySQLだった際は無事にキーを自動採取した上でレコードが登録できていた、ということです。 app.phpをMSSQLと接続するための定義に変更して(勿論同じ構造のテーブルを用意した上で)、bakeで一連を仕上げなおしました。レコードの照会・編集・削除・一覧表示のメソッドは無事動作しますが、登録のメソッドだけ正常に行えません。 CakePHP内蔵サーバに現れていたエラー内容を確認すると、id列がemptyという状況のようでした。 標題のとおりの要因=キーの自動採取に失敗していると推察しています。 この状況を打開する手立てはあるのでしょうか?仕上げられたエンティティ内の$_accessibleを編集(’id’=>true から ’id’=>false )にしても状況は変わりありませんでした。 ちなみに、MSSQL上の当該テーブルに別の手続き(ManagementStudio)でレコードを登録すると、自動でidが取得されており、DBMS側の問題ではないと受けてとれます。 参考書の中で紹介されたDBMSとは異なるDBMSを選択して、参考書に従った課題の取り組みは無理がありますかね(より実践を意識したくて DBMSにMSSQLを選択しています) public function validationDefault(Validator $validator) { $validator ->integer(‘id’) ->requirePresence(‘id’, ‘create’) ->notEmpty(‘id’); $validator ->scalar(‘title’) ->maxLength(‘title’, 50) ->allowEmpty(‘title’); $validator ->scalar(‘author’) ->maxLength(‘author’, 50) ->allowEmpty(‘author’); $validator ->integer(‘price’) ->allowEmpty(‘price’); return $validator; } 解決 idフィールドのバリデーションが以下のように設定されているためバリデーションエラーとなり保存できない状況です。 $validator ->integer(‘id’) // idは数値 ->requirePresence(‘id’, ‘create’) // 新規作成時にidは必須 ->notEmpty(‘id’); // idは空であってはならない idが採番されるのはDBへの保存時ですので、保存前には空でなければなりません。 idのバリデーションは以下のようになるべきです。 $validator ->integer(‘id’) // idは数値…(Continue Reading)

会員制サービスにおける、詳細なアクセス制御機能の実装

投稿者: Anonymous CakePHP2において会員制サービスを作ろうとしています。 actionレベルでのアクセス制御はACLという機能で実装できるようなのですが、 更にその下のパラメータレベルでのアクセス制御の実装方法が分かりません。 お詳しい方、ご教示頂けないでしょうか。宜しくお願い致します。 想定しているのは以下のイメージです。 会員AとBがいて、Aは#1のみにアクセスでき、Bは#2のみにアクセスできる。 1:http://example.com/restaurants(controller)/edit(action)/1 (id=1のレストラン情報を修正) 2:http://example.com/restaurants(controller)/edit(action)/2 (id=2のレストラン情報を修正) 【環境】 ・CakePHP2.5.6 ・PHP5.5.30 ・XSERVER 解決 アクション単位でのログイン制御だけであれば、authを使用する事で実現できます。 http://book.cakephp.org/2.0/ja/core-libraries/components/authentication.html aclはユーザーを管理者などの権限をグループ分けし、権限グループのユーザーと対応するテーブルに対しての制御が可能なようです。 http://book.cakephp.org/2.0/ja/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html URLのパラメーターに対する許可の機能はいづれもないと思われますので、ロジックで制御するしかないように思います。 回答者: Anonymous

WordPress・CakePHP連動のRewriteRuleの記述方法

投稿者: Anonymous いつもお世話になっています。 CakePHPで運営されているサイトの一部にWordpressを導入したいを思っています。 CakePHPで http://www.test.test/note/memo このようなURLで動作しているページがあるとします。 Router::connect(‘/note/:memo_id’, array(‘controller’ => ‘front_note’, ‘action’ => ‘index’), array(‘pass’ => array(‘memo_id’))); ここに、 http://www.test.test/note/memo/blog というページを作り、『一番最後に「blog」と付いている場合=Wordpressページ』と判別させたいのです。 WordPressは/webroot/wordpress/として設置済みです。 Wordpress側では、カテゴリ「memo」を作成し、スラッグを設定、パーマリンクで「/%category%/blog」とする事で対応しています。 また、設定・一般で以下のように設定しました。 Wordpressアドレス=http://www.test.test/wordpress サイトアドレス=http://www.test.test/note 次にwebrootのhtaccessを以下のように追記しました。 RewriteCond %{REQUEST_URI} !^/note/(.*)/blog$ ← 追記 RewriteCond %{REQUEST_URI} !^/wordpress/(.*)/blog$ ← 追記 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] こうした時、 http://www.test.test/note/memo は平常通りCakePHPで作成したページが表示されるのですが、 http://www.test.test/note/memo/blog はNotFoundになります、 http://www.test.test/wordpress/memo/blog は表示されます。 htaccess部分の書き方が悪いのだろうなと思い調べて試してみたのですが、巧く行きません。 大変お手数お掛け致しますが、不足部分ご教授お願いできませんでしょうか? 解決 先に…(Continue Reading)

URL に指定する ID を数値型だけにしたい

投稿者: Anonymous URL で、一般的に Action/Controller/Value の構成でアプリを組んでいます。 この Value はデータベース上では数値型なので、URL 自体に数値の制限を入れたいのです。 現状はたとえば /Action/Controller/123 が実在するとして、以下が同じ結果を返してしまいます。 /Action/Controller/123aa Value の引数をそのまま MySQL に渡しており、前方の数値をできるだけ解析してくれる便利機能のようなのですが、今回は不要なので、Controller または Model で制限しようと思っています。 全部のモデルの ID が数値型なので、AppController または AppModel で判定することを考えています。 Controller 内のすべてのメソッドで if 判定する方法はあるのですが、もっと良い方法がある気がしてなりません。他にエレガントな方法はあるでしょうか? 全国の識者の方、お教えください。 解決 URLパラメータの値を制限したい場合は、ルーティングによって行う方法があります。 app/Config/routes.php を修正します。 例えば、URL /posts/view/123 は許可し、 /posts/view/123abc を許可しないのであれば、 Router::connect(‘/posts/:action/:id’, [], [‘id’ => ‘[0-9]+’]); のようにRouter::connect()の第3引数にパラメーターの制限を正規表現で記述します。 質問にある /Action/Model/123 のようなルーティングであれば、 (注: URLのModelはControllerのことと解釈して回答します。) Router::connect(‘/:action/:controller/:id’, [], [‘id’…(Continue Reading)

CakePHP2.6でAWSのS3をプラグインを使用して使いたいのですが

投稿者: Anonymous お世話になっております。 https://github.com/zaru/Cakephp2_AWS_S3_DataSource このプラグインを使用してS3アップにしたいのですが、導入してページを開くと Error: Class ‘AwsS3S3Client’ not found File: /var/www/html/cakephp/app/Plugin/AmazonWebServices/Model/Datasource/S3.php Line: 21 このようなエラーがでてしまいます。 S3のクライアントが認識されていないと思われるのですが、どこに何を記述していいのかわかりません。パケット名は記述したのですが、クライアントとはAWS、S3のどこの部分でしょうか? use AwsS3EnumCannedAcl; use AwsS3S3Client; use AwsS3ExceptionS3Exception; use GuzzleHttpEntityBody; class S3 extends DataSource { public $description = ‘AmazonWebServices S3 File Controller’; public $S3 = ”; public $bucketName = ‘****’; //パケット名入力 public function __construct($config = array(), $autoConnect = true){ parent::__construct($config); $this->S3…(Continue Reading)

cakephpとcakeそれぞれの利点と欠点を教えて下さい

投稿者: Anonymous 今までcakephpを使ってきたのですが、ウェブアプリでcakeを採用するべきか悩んでいます。 海外動向にあわせたいのですが、日本ではcakephpが主流になっている様に感じられました。 phpフレームワークを利用したことがある方で、それぞれの利点と欠点がわかる方がいらっしゃったら教えて下さい。 解決 Cakephpを複数のプロジェクトで採用したことがあります。今関わっているプロジェクトではLaravel4.2を採用しました。 フレームワークはメリット・デメリットが色々あるので、比較すべき項目に重みをつけて採用基準を作り、しっかり比較検討するのが大事かなと思います。チームによって重要視する項目が違うので、何を採用すべきなのかはチームの方針次第かなと。 個人的にはCakeとLaravelだとどっちも同じくらいな印象ですが、Cakeは経験者がそこそこ集まりやすいのと、Laravelよりは情報収集が簡単なので、スピード優先の開発だとCakeを採用する事が多いです。 回答者: Anonymous

CakePHP2.7 Error: FlashComponent could not be found

投稿者: Anonymous CakePHPの勉強にCoocbookで進めているのですがユーザーの処理を追加したら下記のエラーが出力されました。CakePHP2.7.3ではFlashComponentが無いのでしょうか? Error: FlashComponent could not be found. // app/Controller/AppController.php class AppController extends Controller { //… public $components = array( ‘Flash’, ‘Auth’ => array( ‘loginRedirect’ => array( ‘controller’ => ‘posts’, ‘action’ => ‘index’ ), ‘logoutRedirect’ => array( ‘controller’ => ‘pages’, ‘action’ => ‘display’, ‘home’ ), ‘authenticate’ => array( ‘Form’ => array( ‘passwordHasher’ => ‘Blowfish’…(Continue Reading)

SwiftとPHP間の画像のやりとり

投稿者: Anonymous Swiftから画像をサーバサイド(PHP)に送信 PHPでは送られてきたデータをDBに保存 PHPでDBに保存されたデータを取り出して、Swift側に送信 Swift側ではPHPからの画像データを受け取って、UIImageViewに表示 画像のやりとりの勉強を兼ねて以上のような機能をもつ簡単なアプリの作成をしてます。 そこで幾つか問題が発生していて非常に困っています。 まず1→2なのですが、 SwiftからPHPではマルチパートのデータとしてPHP側に指定のURLで送信しています。 func uploadBtn(sender :UIButton){ //POSTする画像を生成 let sampleImage = UIImage(named: “images.jpg”) let imageData:NSData = NSData(data:UIImageJPEGRepresentation(sampleImage!, 1.0)!) //NSURLRequestを生成 let url = NSURL(string: “http://192.168.33.10/test_app/images/postImage”) let urlRequest : NSMutableURLRequest = NSMutableURLRequest() if let u = url{ urlRequest.URL = u urlRequest.HTTPMethod = “POST” urlRequest.timeoutInterval = 30.0 } //BODYを作成 let uniqueId =…(Continue Reading)

AWS SDK for PHPを使ってS3に画像をアップロードする

投稿者: Anonymous タイトル通りなのですが、CakePHP3にAWS SDK for PHPをインストールし、それを使ってAWSのS3にインストールしようしています。 <?php namespace AppController; require(‘/var/www/html/imagine/src/vendor/autoload.php’); use AppControllerAppController; use CakeORMTableRegistry; use Aws; use AwsCommonEnumRegion; use AwsS3S3Client; use AwsS3EnumCannedAcl; use AwsS3ExceptionS3Exception; use AwsS3MultipartUploader; use AwsExceptionMultipartUploadException; use AwsS3ModelMultipartUploadUploadBuilder; use GuzzleHttpEntityBody; class ImagesController extends AppController { public function upload(){ $end_point_url = ‘*******’; $client = S3Client::factory(array( ‘credentials’ => array( ‘key’ => ‘******’, ‘secret’ => ‘*****’,…(Continue Reading)

CakePHP3でのPOSTリクエストの処理

投稿者: Anonymous CakePHP3で以下のスクリプトからリクエストされるパラメータ id及びparamを取得したいのですがどのように受け取ればよいのでしょうか。 送信側 —Python— #!/usr/bin/env python import requests p = {“id”:0, “param” : “dammy” } print requests.post(‘http://localhost/testApp/testApp.json’,data=p).text 受け取り側 —Cakephp(testAppController.php)— public function index() { if ($this->request->is(‘post’)) { $name = $this->request->data(); // name が null になってしまう $this->set(compact(‘name’)); } … } 解決 自己解決しました。 上記ソースの … の部分に以下の未定義変数hogeを指定しているコードがあり、 実行が失敗していたので nullとなっておりました。 $this->set(‘_serialize’,[‘hoge’]); この行をコメントアウトしたところ正しく、jsonが返却されました。 回答者: Anonymous

CakePHPで異なるDB間でアソシエーションを組む方法

投稿者: Anonymous バージョンはCakePHP2.4.6です。 DBはMySQLを使用しています。 異なるDB間でアソシエーションを組むにはどうしたらよいでしょうか? 同一DB内で試すと正しい結果が取得できているのですが、 異なるDBにすると望んだ結果が得られません。 DB・tableは下記のようになっています。 database.php public $default = array( ‘datasource’ => ‘Database/Mysql’, ‘persistent’ => false, ‘host’ => ‘192.168.*.***’, ‘login’ => ‘user’, ‘password’ => ‘pass’, ‘database’ => ‘customer_db’, ‘prefix’ => ”, ‘encoding’ => ‘utf8’, ); public $company_db= array( ‘datasource’ => ‘Database/Mysql’, ‘persistent’ => false, ‘host’ => ‘192.168.*.***’, ‘login’ => ‘user’, ‘password’ =>…(Continue Reading)

Cakephp2の環境でSmartyが利用できない

投稿者: Anonymous phpのバージョン5.4でCakephp2の環境でSmartyを取り入れたいのですがうまくいきません。 Error: The application is trying to load a file from the SmartyView plugin Error: Make sure your plugin SmartyView is in the appPlugin directory and was loaded といったエラーが表示されます。どう対応すればSmartyが使えるようになるのか分かっておりません。ご教授お願いいたします。 下記を試してみました。 ・https://github.com/smarty-php/smarty/releases/tag/v3.1.33 からダウンロードし、フォルダ内にあるlibsフォルダをsmartyに変更。 cakephpディレクトリのvendorsディレクトリに入れる。 ・テンプレートのキャッシュを格納するディレクトリを作成。 cakephpのapp/tmp/smarty/compile ・https://github.com/news2u/cakephp-smartyview からダウンロードし、 SmartyView.php Helperフォルダ内のファイルを それぞれViewフォルダに入れる ・bootstrap.phpの中にCakePlugin::load(‘SmartyView’);を記載 ・appViewInput内のindexファイルの拡張子をtplに変更 ・以下を実行 class InputController extends Controller { public $viewClass = ‘Smarty’; public…(Continue Reading)

cakephp3系でajaxを使い、リアルタイムでデータを取得し、グラフで表示したい

投稿者: Anonymous こんにちは。Cakephpを最近勉強し始めたものなのですが、 今回はajaxとcakephpとの連携で引っかかってしまったので 質問させていただきます。 今回実現させたいことは、Datasというデータベースからのデータをajaxをつかってリアルタイムで更新しながらChart.jsを使ったグラフで表示させるというものです。 データベースはresult(値は1つ),created(投票された時間)の二つです。 このresultはAとBがあり、これをパーセンテージ化して表示したいと思っています。 また、リアルタイムというのは毎秒1秒で更新したいと思っています。 一応書いたコードがこちらになります。 /js/ajax.js $(function() { $.ajax({ url: “result”, type: “get”, dataType: “html” }).done(function (response) { //dataからAとBのパーセントを割り出してa_lastに代入するコードが入ります var chartColors = { red: ‘rgb(255, 99, 132)’, }; function onRefresh(chart) { chart.config.data.datasets.forEach(function(dataset) { dataset.data.push({ x: a_last, y: Date.now() }); }); } var color = Chart.helpers.color; var config = { type:…(Continue Reading)

mailcatcher CakeEmailを使って本文を入れるとmailcatcherが落ちる

投稿者: Anonymous cakePHPのブロジェクトにてmailcatcherを使いたいのですが、 本文を入れた送信が出来ません。 環境は仮想環境で動かし(VirtualBox Vagrant)テストしています。 cakephp 2.x ホストは Mac OS X 10.10.4 仮想環境(Ubuntu14.04)に入っているバージョンは daemons (1.2.3) eventmachine (1.0.5) i18n (0.7.0) mail (2.6.3) mailcatcher (0.6.1) Smtp送信設定 –email.php– public $default = array( ‘transport’ => ‘Smtp’, ‘host’ => ‘127.0.0.1’, ‘from’ => ‘[email protected]’, ‘port’ => 1025, ); 設定はなんとかうまくいき、http://ホスト名:1080 で画面も見れます。 本文がないメール(タイトルのみ)の場合は送信出来て、 画面でもメールを確認出来ます。 が、本文を入れると、mailcatcher自体が落ちてしまいます。 (cakePHPの方では特にエラーは出ません) Smtpの設定をgoogleにして送信してみるときちんと本文が入ったメールが届きます。 数日ハマってます・・ ちなみに cakephpの送信ソースは $email = new…(Continue Reading)

Validation::notEmpty() is deprecated. Use Validation::notBlank() instead. と表示される

投稿者: Anonymous CakePHPを勉強中です。 バリデーションを練習しているのですが下記のエラーが出てしまいます。 Deprecated (16384): Validation::notEmpty() is deprecated. Use Validation::notBlank() instead. [CORE/Cake/Utility/Validation.php, line 60] 対象サイトは下記です。 http://cakephp.kir.jp/posts/add モデルは下記のとおりです class Post extends AppModel { public $validate = array ( ‘タイトル’ => array ( ‘rule’ => ‘notEmpty’, ‘message’ => ‘データが入力されていません’ ), ‘記事’ => array ( ‘rule’ => ‘notEmpty’, ‘message’=>’記事を入力してください。’ ) ); } 色々検索しては見たのですが解決策が見当たらず完全に打つ手なしになってしまったので質問させていただきました ヒントでもいいのでよろしくお願い致します 解決 Deprecated (16384):…(Continue Reading)

連想配列をループで取り出した(PHP)

投稿者: Anonymous 下記の配列をforeachで取り出したのですが、どのようなコードを書けばいいですか? $iの部分を0から順に取り出したいです。 <?php foreach ($price as $p): ?> <?php echo $p[$i][0][‘SUM(price)’]; ?> <?php endforeach; ?> array( (int) 0 => array( (int) 0 => array( ‘SUM(price)’ => ’13’ ) ), (int) 1 => array( (int) 0 => array( ‘SUM(price)’ => ‘5’ ) ), (int) 2 => array( (int) 0 => array( ‘SUM(price)’ => ’23’…(Continue Reading)

CakePHP3.4でファイルを作成しつつダウンロードを行うとヘッダーエラーが発生する

投稿者: Anonymous お世話になります。 現在CakePHP3.4でダウンロードの処理を下記のようなコードで作成したのですが エラーが発生し、画面上に出力内容が表示されるという問題が発生しています。 ヘッダーエラーを発生させずに処理をさせる方法とかはないでしょうか? ※php.iniのbuffering_outputは4096になっており、ダウンロードするファイルサイズが  このサイズを超過するとエラーが発生するのは分かりました。 (onにすると大容量ファイルになった場合メモリを食いつぶしてメモリエラーになったため、NGでした。) [xxxController.php] public function download() { $this->autoRender = false; $this->response->type(‘csv’); $this->response->download(‘test.txt’); $fp = fopen(‘php://output’,’w’); stream_filter_append($fp, ‘convert.iconv.UTF-8/CP932’, STREAM_FILTER_WRITE); $user_list=array(‘value1′,’value2′,’value3′,’value4′,’value5′,’value6’); for($i=0;$i<1000;$i++){ $outStr = implode(“t”, $user_list).”rn”; fwrite($fp,$outStr); } fclose($fp); } [エラー内容] Warning (512): Unable to emit headers. Headers sent in file=/var/www/html/xxx/src/Controller/xxxController.php line=56 [CORE/src/Http/ResponseEmitter.php, line 48] Warning (2): Cannot modify header…(Continue Reading)

cakephpを立ち上げようとするとError: SQLSTATE[HY000] [14]

投稿者: Anonymous 前提・実現したいこと PHP初学者です。 cakephpを使ってアプリを作成しようとしています。 下記の記事を参考に仮想環境に開発環境を構築しようとしています。 参考記事: VagrantでLAMP環境構築 + Cakephp3.6 – Qiita 参考記事の手順8)まで行いローカルサーバーへアクセスすると以下のようなエラーが表示されました。 発生している問題・メッセージ Error: SQLSTATE[HY000] [14] unable to open database file If you are using SQL keywords as table column names, you can enable identifier quoting for your database connection in config/app.php. Warning(2):file_put_contents(/vagrant/test2/logs/error.log) [<a href=’https://secure.php.net/function.file-put-contents’>function.file-put-contents</a>]: failed to open stream: Permission denied [CORE/src/Log/Engine/FileLog.php, line 133]…(Continue Reading)

cakePHP3 テーブルクラスのインスタンスからSQLクエリログを取得する方法

投稿者: Anonymous https://book.cakephp.org/3.0/ja/orm.html https://book.cakephp.org/3.0/ja/orm/database-basics.html#database-query-logging 上記を参考にして、SQLクエリのログを出力しようとしましたが、出力されませんでした。 use CakeORMTableRegistry; use CakeDatasourceConnectionManager; $connection = ConnectionManager::get(‘default’); // クエリログを有効 $conn->logQueries(true); $articles = TableRegistry::get(‘Articles’); $query = $articles->find(); foreach ($query as $row) { echo $row->title; } // クエリログを停止 $conn->logQueries(false); コネクションについてはTableクラスの https://api.cakephp.org/3.4/class-Cake.ORM.Table.html#_getConnection も使ってみましたが、同様に出力されませんでした。 他のエラーログなどは出力されています。 正しいやり方を教えていただけますでしょうか。 よろしくお願いいたします。 解決 config/bootstrap.phpにログ出力の設定はありますか Log::config(‘queries’, [ ‘className’ => ‘File’, ‘path’ => LOGS, ‘file’ => ‘queries.log’, ‘scopes’ => [‘queriesLog’] ]);…(Continue Reading)

Como enviar una variable desde una función a otra dentro de un controlador en cakephp?

publicado por: Anonymous Buenos días. Tengo lo siguiente: public function sendEmail() { $userid = $this->Session->read(‘Usuario.id’); $sql = “SELECT profesor_id FROM tabla_profesores WHERE teacher_id = ‘” . $userid . “‘”; $logo = $this->Autoevaluacion->query($sql); if(!empty($logo)){ global $teacherid; $teacherid = $logo[0][0][‘ } Y dentro del mismo controlador tengo lo siguiente: private function __generarPdf(&$teacherid) { $logoCentro = null; if(file_exists(WWW_ROOT…(Continue Reading)

PHP から MySQL のタイムアウト設定はできますか?

投稿者: Anonymous CakePHP で作られている特定の検索画面から $this->[モデル]->find… メソッドでクエリを実行した際、MySQL のタイムアウト時間を指定したいです。 set_time_limit() 関数ですとスクリプトのタイムアウトは有効ですが、DBの処理時間は対応していないようです。 そもそも可能なのか、分かる方がいらしたらご教授お願いします。 CentOS :6.3 PHP :5.3.3 MySQL :5.1.58 CakePHP :2.3.9 解決 今のところできないと思います。MySQL5.7.4以降でできるようになるようです。PostgreSQLでは可能なのですが。 どうしてもやろうと思うなら、show processlist を叩いて実行時間の長いQueryをkillするスクリプトを実行しまくるとか、information_schema.processlist から同様のことをするかしかないのではないでしょうか。 回答者: Anonymous

cakephp3 プラグインの読み込みができない

投稿者: Anonymous OS: OS X Yosemite AP, DB, 言語: MAMP(Apache 2.2.29, MySQL 5.5.42, PHP 5.6.10) フレームワーク: CakePHP 3.2.1 パッケージ管理ツール: Composer http://yamabe.hatenablog.com/entry/2015/06/06/235854 上記のブログを参考にBootstrap3を導入しようと思ったのですが、以下のエラーが出てしまいます。 自身のコントローラで以下を記述しました。 class UimagesController extends AppController { public $helpers = [ ‘Html’ => [ ‘className’ => ‘Bootstrap3.BootstrapHtml’ ], ‘Form’ => [ ‘className’ => ‘Bootstrap3.BootstrapForm’ ], ‘Paginator’ => [ ‘className’ => ‘Bootstrap3.BootstrapPaginator’ ], ‘Modal’ =>…(Continue Reading)

phpで日付比較ができません

投稿者: Anonymous いつもお世話になってます。 phpを使用しての日付比較について詰まってしまったので教えていただきたいです。 下記のようにDBから取ってきた日付情報を現在の日時と比較をして、 比較結果により$statusに追加する要素を変えようとしています。 そこで下記コードで試すと、 各変数はifの条件は満たしているはずなのですが、 statusに値が入らず処理が終了してしまいます。 デバッグしてみるとifの最初の条件で弾かれて、 elseifを通らずにif文を抜けてしまいます。 ※日時が入っている変数は以下ルールで入っています。 $acStart < $acEnd < $cntStart < $cntEnd ifの条件は通っているはずなのに、弾かれる原因が分かりません。 間違っている箇所はどこなのでしょうか。 また、情報不足がありましたら追記しますので、 お知らせいただけると助かります。 ※php5.6使用 $getContestsはDBにdatetime型で入っている値が連想配列で入っております。 $status = array(); $today = new DateTime(); for($i = 0; $i < count($getContests); $i++){ $cntStart = new DateTime($getContests[$i][‘cont_start_date’]); $cntEnd = new DateTime($getContests[$i][‘cont_end_date’]); $acStart = new DateTime($getContests[$i][‘accept_start_date’]); $acEnd = new DateTime($getContests[$i][‘accept_end_date’]);…(Continue Reading)

CakePHPを使って動的にテーブルを生成する

投稿者: Anonymous あるアカウントが作成されるごとに、そのアカウントに応じて別々のテーブルを動的に生成したいのですが、CakePHPで提供されているライブラリのようなものを見つけることができませんでした。 なので、query() を使って直接SQL文を投げる方法も考えたのですが、あまり推奨されていないようでした。 動的にテーブルを生成するようなことはあまり行わないのでしょうか。 もし、生成するとするならばquery() を使う以外で方法をご存知の方がいらっしゃいましたら、 教えていただけると助かります。 また以下は生成したいテーブルのqueryです。 CREATE TABLE `comment_table` ( `comment_table_id` int(11) unsigned NOT NULL AUTO_INCREMENT , `post_id` int(11) NOT NULL , `user_id` int(11) NOT NULL , `id` int(11) NOT NULL , `text` text NOT NULL , `img` text , `create_at` datetime NOT NULL, PRIMARY KEY (`colony_comment_table_id`) ) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT…(Continue Reading)

CakePHP2での複数ファイルのアップロードをしたい

投稿者: Anonymous お世話になります。 CakePHP2で画像のアップロード掲示板を作成していますが 複数ファイルアップロードについてどうすればできるのか悩んでいます。 ※CakePHPの本も複数読んでいますが、複数ファイルをアップロードしたものがありません –やったこと まず最初に以下のような投稿フォームを作ろうとしました。 ・タイトル(text) ・記事(textarea) ・画像1(file) ・画像2(file) ・画像3(file) ・画像4(file) そのため、まず下記の2つのテーブルを作成しました。 CREATE TABLE `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(30) NOT NULL, `description` varchar(150) NOT NULL, `user_id` int(11) NOT NULL, `del_flg` tinyint(1) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `images`…(Continue Reading)

cakephpのformhelperラジオボタン機能にて、ラベルの文字数が長いとラジオボタンとラベルの間で改行がされてしまいます。

投稿者: Anonymous 例えば、以下の場合、 <?php echo $this->Form->input(‘test’, array(‘label’ => true,                       ’div’ => false, ‘type’ => ‘radio’, ‘legend’=> false, ‘options’ => array(‘0’=>’123’, ‘1’=>’1234567890′), //’before’ => ‘<span>’, //’after’ => ‘</span>’, //’separator’ => ‘</span><span style=”white-space: nowrap”>’                       )); ?> LABELのCSS label { display: block; width: 100px; float: left; margin-bottom: 10px; } ラジオボタンを横並びにしているのですが、labelの文字列が長い場合、上記の例ですとradioボタンとlabelの「1234567890」の間で改行されてしまう場合があります。 この場合、radioボタンとlabelをセットで自動改行するようにしたいです。 いい方法はありますでしょうか? お願い致します。 解決 labelにwidthを付けるのではなく、divをtrueにして、そのdivのwidthを100pxにするのはダメなのでしょうか。 回答者: Anonymous