問題タブ [cakephp-model]
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 - CakePHP Bake とデータベース テーブルの 1 つに問題がある
Bake を使用して、データベース テーブルのモデルを作成しています。少し問題が発生しました。
私は25のテーブルを持っています....
データベース テーブルの 1 つがモデル、ファイル、およびクラスに独自の名前を付け始めるまで、モデルのベイクを開始しました。
たとえば、データベース内のテーブルの名前は「risk_manager」です。
(ベーキング中に定義している他のテーブルと関連付けられています)
ただし、このモデルは「risk.php」と呼ばれるファイルとして表示され、クラス名は「risk」と呼ばれます (ただし、正しいテーブルにマップされます)。
なぜこうなった...?
php - CakePHP は一度に複数のレコードを編集します
2 つのテーブル間に HABTM 関係があります:items
とlocations
、テーブルを使用してitems_locations
それらを結合します。
items_locations
また、もう少し多くの情報を保存します。これがスキーマです
すべてのアイテムを 1 つの場所に表示し、ユーザーがデータグリッド スタイルのインターフェイスを介して一度に複数のフィールドを編集できるページを作成しようとしています。
これを支援するために、次のようなコントローラーがInventoryController
あります。
このデータを編集するために多次元フォームを作成するにはどうすればよいですか?
編集:
Decezeが以下に説明したようにデータを取得しようとしていますが、再び問題が発生しています...
私がそれをすると、$this->data
次のようになります:
php - 2つのテーブル間でモデルを2回結合するCakePHP
2つの異なる点で互いに結合するときに、2つのモデル間の関係をどのように設定するかについて質問があります。
私が抱えている問題の例を挙げましょう:
(私の場合、それはユーザーでもメッセージでもありませんが、これはうまくいけばより簡単な方法で問題を説明します)
ユーザーは互いにメッセージを送信でき、各メッセージには、メッセージを送信したユーザーと受信するユーザーがいます。私はモデルの関係を理解しようとしています:
また、CakePHPが関係を適切に取得できるように、データベースでフィールドにどのように名前を付ける必要があるのかわかりません。
php - CakePHP モデルは再インスタンス化せずにテーブルを変更できますか?
私は、オブジェクトの各インスタンスがデータベース内に関連するレコードを持つ独自のテーブルを持つ、変更不可能なレガシー データベース スキーマを使用しています。useTable
モデルがインスタンス化されるたびにモデルを変更する必要がありますが、Cake の優れたキャッシングなどは保持します。
多くのパッド オブジェクトがあり、それぞれがいくつかのノート オブジェクトを持っているとします (ノートはパッドに属し、パッドは多くのノートを持っています)。各パッドにはパッド テーブルにレコードがありますが、すべてのノートにはデータベース内に独自のテーブルがあります (たとえば、'pad_{id}' というタイトル)。このスキーマは固定されており、使用する必要があります。
今のところ、保存を行う必要はないので、読み取りをサポートするために find の前にモデルでこれを行います。
これにより、データベースで使用されるモデルのテーブルが変更され、Core::debug > 0
. ただし、ゼロの場合は、CakePHP がモデル コードをキャッシュして、適切にテーブルを変更していないと思います。いずれにせよ、/pads/view/{pad_id} にアクセスするか、このテーブルを動的に変更する何らかのアクションを実行すると、404 エラーが発生します。デバッグをオンにすると正常に動作するため、正確なエラーが何であるかはよくわかりません。したがって、この問題のデバッグに関する指針も役立ちます。
ありがとう!
php - Cakephp:「users_controller.php」ファイルの「cat」テーブルから値を取得しますか?
テーブル「User」とコントローラー「users_controller.php」があり、「cateogry」という別のテーブルがあり、「listall」アクション(site.com/users/listall)でこのテーブルから値を取得する必要があります。
別のテーブルから値を取得するにはどうすればよいですか。
php - モデルに複数のデータベースを使用する CakePHP
特定のモデルをあるデータベースに配置し、他のモデルを別のデータベースに配置することは可能ですか (同じ接続を使用して)?
システムの複数のインストール間で共有したい読み取り専用テーブルが多数あります。その他のテーブルは、インストールごとに必要です。例として、users
が共有テーブルであり、posts
インストールごとであるとします。
あるスキーマ (「共有」と呼びましょう) にはusers
テーブルがあり、別のスキーマ (「mycake」) にはposts
.
共有データベースを指す新しいデータベース接続を作成することで、他のデータベースから User モデルを読み取ることができました (ただし、2 つのデータベースは同じホスト上にあり、同じログイン情報で両方にアクセスできます)。
問題は、posts
テーブルに参加するときです。テーブル名の前にスキーマ名を追加しないため、posts
.
基本的に、完全修飾されたテーブル名をモデルに割り当て、それをすべてのクエリで強制的に使用する方法はありますか? 設定var $useTable = 'shared.users';
が役に立たない...
php - CakePHP でより良いモデル関数をリファクタリングするには?
私はプログラミングのベストプラクティスを読んでいます.関数を作成するときは、特定のタスクを1つだけ実行する必要があると言われています.
データとそれに関連するデータを取得するモデル関数を取得しました。例:
$this->Student->StudentAssignments();
現在、この関数は、生徒の課題に加えて、各課題の質問と生徒に関するデータを取得します。私はそれらすべてを使用します。私のジレンマは、関連するデータ (学生と質問のデータ) を取得する別の関数を作成しようとすると、DB への呼び出しが増えるため、負担が大きくなることです。
あなたたちは何を提案しますか?
mysql - Find conditions like 'NOT EXISTS'
I have 2 tables in my db...
Entita
id int(11)
descrizione varchar(50)
.....
Publicobjects
....
model varchar(50) the model I need (in this case 'Entita')
model_id int(11)
I would like to make a query like this:
select entita.*
from entita
where NOT EXISTS (select * from publicobjects where publicobjects.model = 'Entita' and publicobjects.model_id = entita.id)
How can I do this with the model functions of Cakephp without use custom query?
Thanks
php - CakePHP、複数選択ボックスの複雑/複数検索条件の設定
製造元名という名前の複数選択ボックスが正しく表示されており、クリックして複数検索することもできます。検索を実行すると、設定した複雑な検索条件を使用してデータベースから結果が得られません。ベーカリーやその他のさまざまな Web サイトの Complex-Find-Conditions を使用しようとしましたが、役に立ちませんでした。
コメントアウトされているのは、複数の検索条件を設定するためにコントローラーで試したことです。
デバッグして検索すると、次のようになります。
php - CakePHPのモデルからデータを取得する最も効率的な方法は何ですか?
私はCakePHPに不慣れで、まだ基本を理解しています。現在、モデルから(別のリンクされたモデルの内部から)1つ以上のフィールドを取得するプロセスに少し不思議に思っています。
これまでのところ、私はこれを持っています:
これはひどく冗長に思えます。
この:
これはそれほど長くはないようですが、2つのクエリが発生します。
私がこれらの状況で行っていたこと、プレケーキ:
または私がタイプしたいと思ったとき:
それで、質問:私はこのタスクを達成するためにCakePHPにいくつかの魔法を逃していますか、それとも私はたくさんタイプすることで生きなければなりませんか?