問題タブ [cakephp-3.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cakephp - すべてのコントローラに対して 1 回だけデータを注文するにはどうすればよいですか?
私は CakePHP 3 (3.0.13) で非常に単純なアプリを書いています。単純でより良いことができるかどうか知りたいです。
私は基本的に、問題と仕事を把握するために問題トラッカーを書いています。低、中、高など、各レベルの一意の ID と名前を含む優先度というテーブルがあります。私の問題は、これらを表示したい順序でデータベースに追加しましたが、アルファベット順に表示されているため、高、低、中です。
課題コントローラーの追加機能 (たとえば) では、次のように変更できます。
$priorities = $this->Issues->Priorities->find('list');
...に:
$priorities = $this->Issues->Priorities->find('list', ['order' => 'Priorities.id ASC']);
...しかし、優先順位のリストを使用したいすべての場所でこれを行う必要はありません。
これを指定するDRYの方法があると思います(モデル内?)。これにより、他の場所で使用するためのデフォルトが効果的に設定されますが、ある場合は見つかりません。
cakephp - CakePHP 3.1-rc1 utf-8 特殊文字の出力
2.6 から 3.1 への移行中に、クロアチア語の特殊文字の表示で問題が発生する場合があります。コンテンツはデータベースから取得されます。
コンテンツは CakePHP 2.x アプリケーションを介してデータベースに保存され、適切に表示できます。しかし、新しいアプリケーションを接続すると、これらの文字 čćšđž の適切な表示に問題があります。
データベース/テーブル: MyISAM utf8_general_ci
CakePHP 2.x アプリ
core.php
ブートストラップ.php
cakephp 3.1-rc1
bootstap.php
これを修正する方法は?
email - CakePHP 3.1 で Mandrill を介して電子メールを送信しようとするとタイムアウトする
Mandrill を使用して CakePHP でメールを送信しようとしていますが、回転して次のようになります。
エラー: 接続がタイムアウトしました
Cake\Network\Exception\SocketException
ページ上のエラー/スタック トレースによると、エラーは次の場所で発生しますvendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php line 206
。
/tmp/error.log から:
2015-09-21 13:48:04 エラー: [Cake\Network\Exception\SocketException] 接続がタイムアウトしました 要求 URL: /portal/users/add スタック トレース:
#0 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(206): Cake\Network\Socket->connect()
#1 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(161): Cake\Mailer\Transport\SmtpTransport->_connect()
#2 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Mailer/Email.php(1304): Cake\Mailer\Transport\SmtpTransport->send(Object(Cake\Mailer\Email))
#3 /home/user/public_html/user/mysitefolder/src/Controller/Portal/UsersController.php(92): Cake\Mailer\Email->send()
#4 [内部関数]: App\Controller\Portal\UsersController->add()
#5 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Controller/Controller.php(416): call_user_func_array(配列, 配列)
#6 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(114): Cake\Controller\Controller->invokeAction()
#7 /home/user/public_html/user/mysitefolder/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(Object(App\Controller\Portal\UsersController))
#8 /home/user/public_html/user/mysitefolder/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#9 {メイン}
コントローラーでメールを送信する:
私のapp.phpで:
標準のPHPメールだけを試してみると、うまくいきます:
要約: Mandrill に確認したところ、ポートなどをブロックしていないとのことです。ホスト (HostMonster) で確認したところ、ポートが開いており、何もブロックしていないとのことです。
私は途方に暮れています。決定的な答えを得ることができない場合でも、正しい方向に私を向ける助けや、この問題をデバッグする方法についてのアイデアをいただければ幸いです。
php - Cakephp3 セッションの廃止
私は自分のプロジェクトに Cakephp コアの最後のバージョンを更新しました。今、私はこのエラーを受け取ります:
私が思うエラーはこの行にあります:
代わりに何を使用すればよいですか?
ありがとう
cakephp - $this->viewPath は CakePHP 3.1 では動作しません
composer を使用して CakePHP アプリケーションを 3.1 に更新しました。小さな警告または非推奨の警告をすべて修正しようとしています。
簡単に修正できましたが、エラー$this->layout
を修正する方法がわかりませんviewPath
。
移行ガイドを見ると、まったく同じはずです。
なるべき
しかし、これは機能していません。私が得る唯一のものは
これを修正する正しい方法は何ですか?
php - Cakephp3 カスタム検証
duration
フォームから送信された他のデータに応じて、空になることも空にならないこともあるフィールドがあります。だから私は CakePHP3 でカスタム検証をしようとしています。
私のテーブルで私がした
期間フィールドの値を設定すると、'duration is not OK'
(予想どおり) エラーが発生します。しかし、値を空にすると'This field cannot be left empty'
エラーが発生します。
だから私は追加しました:
しかし、この場合、duration
が空の場合、エラーはまったく発生しません。
私は何か間違ったことをしていますか、それとも検証の仕組みを理解していないだけですか?
php - CakePHP 3.1 は条件付きステートメントでルーティングします
CakePHP 3.1 を使用しています。この疑似コードのように機能するルートを作成しようとしています。
カテゴリは、スタイルを変更するテーマを制御します。これを ArticlesController.php に追加します。
これは可能ですか?何かが存在するかどうかのチェックがルートの範囲外である場合は、check inList を実行してもかまいません。カテゴリとサブカテゴリは固定金額になるためです。
これはルートにとって複雑ですか?ビューアクションの下の ArticlesController.php でこれを行う必要がありますか? そしてただする
cakephp - CakePHP 3.1 以降、XML が機能しないと応答する
アプリケーションで XML+XSL テンプレートをレンダリングする必要があり、以前は CakePHP 3.0 で動作していました。最近 3.1 に切り替えましたが、動作しなくなりました。問題は、XML の書式設定されたビューを持っていたのに、今は単純な文字列しか得られないことです。
移行ガイドには、のいくつかの変更について何かが書かれていRequestHandlerComponent
ますが、何の役にも立ちません (あるいは、それは私だけで、要点がわかりません :))。
これは私のコントローラーです (Cake3.0 の場合とまったく同じです):
実にxml.ctp
シンプルなレイアウト
viewxml.ctp
テンプレートはxmlを文字列としてエコーするだけです。
フォーマットされた XML+XSL を再度取得するにはどうすればよいですか?
apache - CakePHP 3.1 のインストール: 内部サーバー エラー 500
composer を使用して Apache サーバーに CakePHP 3.1 をインストールしましたが、その後 500 エラーが発生します。.htaccess ファイルは問題ないようです。"AllowOverride All" は、vhosts および */htdocs に対して All に設定されます。ログには次の行が表示されます。
[Thu Sep 24 10:15:20.193955 2015] [:error] [pid 7231:tid 2761524324096] (104)Connection reset by peer: [client 89.x.x.x:42930] FastCGI: failed to read from backend server
私のホストはGandiなので、そこでいくつかのヒントを探しました:
このエラーは、Apache サービスがインタープリター (PHP、node.js、Python など) からの応答を取得できなかったため、要求されたページを配信できなかったことを示しています。このエラーが発生した場合、インタープリターのログを分析して、問題の原因となっているエラーを検索する必要があります。
それで、私は今何をしますか?CakePHP のログ ディレクトリには、"empty" という名前の空のファイルしか表示されません。どうすれば問題を解決できるか、誰かがヒントを教えてくれることを願っています。
PS: CakePHP のインストール中に次のエラーが表示されましたが、インストールが続行されたため、無視できると思いました。
Cannot create cache directory /srv/data/.composer/cache/[...] , or directory is not writable. Proceeding without cache