問題タブ [tablegateway]

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.

0 投票する
1 に答える
11098 参照

zend-framework2 - ZF2テーブルゲートウェイ選択

ZendSkeletonApplicationから始めて、Zend \ Db \ TableGateway\TableGatewayを拡張するモデルを追加しました。私は次の方法を持っています:

これは機能しますが、これを行うと次のようになります。

最初のものは機能し、実行されるクエリは次のとおりです。

ただし、2番目のクエリは次のクエリを実行します。

これは予想される動作ですか?もしそうなら、どうすれば2回目にメソッドを呼び出して、次のクエリを実行できますか?

前もって感謝します!

0 投票する
5 に答える
7738 参照

zend-framework2 - Zend Framework 2 Paginator + TableGateway

paginatorでデータベースマッパーを使用するにはどうすればよいですか?

以下のコードを使用してDbSelectパギネーターを実装する方法を理解するのに少し問題があります(現在、ResultSetでは機能しないIteratorアダプターを使用しています)。

私が言えることから、それは私が望んでいたほど簡単ではありません。DbSelectはとZend\Db\Sql\Selectアダプターを期待しています。アダプターは問題ではなく、次のコマンドで取得できます。

Selectしかし、クエリコードを複製せずにTableGatewayからオブジェクトを取得するのに問題があります。この問題を解決する簡単な方法はありますか?

NewsController.php

NewsContentsTable.php

0 投票する
2 に答える
4347 参照

zend-framework2 - Zend / ZF2 / TableGateway mysql_insert_id の置き換え?

mysql から Zend / TableGateway クラスに切り替えようとしています。

mysql_insert_id に似た、最後に挿入された行の自動インクリメントされた ID を取得する方法があるのだろうか。

グーグルで検索すると、DB-Adapter の lastInsertId() を指すいくつかの回答が見つかりましたが、このメソッドは ZF2 では使用できなくなったようです。また、insert メソッドの戻り値は、ZF1 のような最後の ID ではなく、ブール値を返します。

現在、私は醜い回避策を使用しています。以下のコードを参照してください。

IDを取得するためのより良い/推奨される方法はありますか?

0 投票する
1 に答える
1571 参照

zend-framework2 - Zend Framework 2 Zend_DB MasterSlaveFeature

ドキュメントには、MasterSlaveFeature へのパラメーターとしてスレーブ アダプターと共に、MasterSlaveFeature を TableGateway コンストラクターに渡すことにより、マスター スレーブを実行する機能が記載されています。私の質問は、TableGateway オブジェクトをインスタンス化するときにそのスレーブ アダプターにアクセスする方法です。

クイックスタートに従って、メインのグローバル構成ファイルとローカル構成ファイルにマスターを設定しています。スレーブ アダプタの設定方法と複数のスレーブの設定方法を教えてください。

これを行う方法の実例はありますか?

更新: 私はこれについていくつかの進歩を遂げました。グローバル構成ファイルで、slave という別の配列キーを追加し、そこに接続情報を入力しました。次に、Zend\Db\Adapter\AdapterServiceFactory の動作を模倣する SlaveAdapterServiceFactory クラスを作成しましたが、"db" の代わりに "slave" 構成キー値を取得します。次に、マスター アダプターのコンストラクター インジェクションを行うモジュール構成で、スレーブ アダプターも取得し、それをモデル テーブルにコンストラクター パラメーターとして新しい MasterSlaveFeature インスタンスに渡します。また、モデル テーブル クラスを変更して、コンストラクターで渡される機能を探す必要がありました。モーダル テーブル クラスは AbstractTableGateway を拡張するため、Feature をどう処理するかを知っていると思います。うまくいけば、その仮定は正しいです。これはすべて本当に混乱しているように聞こえます!ここにいくつかのコードがあります。最初に、config/autoload ディレクトリから global.php を取得します。

モジュールの module.config.php ファイルのコードは次のとおりです。

クエリが実際に正しい接続に接続されているかどうかをテストする機会はありませんでしたが、エラーは発生していません。

もう 1 つの問題は、インスタンス化するすべてのモデルに対してこれを行うのではなく、作成されるすべてのモデルにこれらのアダプターを自動的に渡す方法です。

0 投票する
1 に答える
13923 参照

zend-framework2 - Zend 2 - TableGateway Where 句

こんにちは、Zend 2 を理解しようとしています。テーブル ゲートウェイの where 句に問題があります。

以下は私のテーブルクラスです:

モデルは次のようになります。

私が持っているものは機能しますが、実際には次のようなことができるはずです:

しかし、私はそれを行う正しい方法を理解できません。

編集 (12/11/2012 07:53): サムの回答から次のことを試しましたが、エラーが発生しました:

しかし、次のエラーが発生しました:

また、ドキュメントを読み、チュートリアルに従ったことを追加したいと思います。そこに Zend\Db\Sql を使用することについては言及されていません。tableGateway 内で高度な where 句を使用する例はありません。私はおそらく何かを見逃していますが、それは明らかではないと思います。

0 投票する
1 に答える
8349 参照

php - 複数のFROMテーブルを備えたTableGateway

INNER JOINZend2の2つのテーブル間で簡単に実行したいと思います。

具体的には、Zend2でこれを実行したいと思います。

SELECT * FROM foo, bar WHERE foo.foreign_id = bar.id;

私はFooTable

$select->from('foo');エラーを返します:

==>このオブジェクトはコンストラクターのテーブルやスキーマを使用して作成されたため、読み取り専用です。

したがって、FROMステートメントを微調整してFooTableとの間の単純な内部結合に一致させることはできませんBarTable

0 投票する
1 に答える
2339 参照

zend-framework2 - 行を挿入するときに ZF2 TableGateway が機能しない

DB に行を挿入しようとすると、致命的なエラーが発生します。何が起こっているのかわかりません。いくつかのブログを読みましたが、解決策はありません。私のコードは、Evan がブログで公開している例と同じです。

私のモデルクラス

code>

In module class:

My controller:

そして、私はこのエラーを受け取ります:

キャッチ可能な致命的なエラー: クラス stdClass のオブジェクトを D:\xampp\htdocs\haystack\vendor\zendframework\zendframework\library\Zend\Db\Adapter\Driver\Pdo\Statement.php 行 258 の文字列に変換できませんでした

エラーの種類 (「stdClass を文字列に変換できませんでした」) はわかっていますが、何が起こっているのかわかりません...

どんな助けでも大歓迎です

敬具。

0 投票する
2 に答える
2729 参照

zend-framework2 - zf2 - Zend\Db\TableGateway\TableGateway を使用して参加します。

最初と 2 番目のテーブルからフィールドを選択する zf2 を使用して単純な結合を実行したいのですが、フィールドの配列を列メソッドに入れようとするとエラー (「ステートメントを実行できませんでした」) が発生します。

0 投票する
7 に答える
31693 参照

mysql - TableGateway を使用した ZF2 での LEFT JOIN

私はテーブルを持っています:

そして2番目のテーブル:

ZF2 の TableGateway を使用して、blogs_settings テーブルからすべてのフィールドを選択し、users テーブルから「username」フィールドのみを結合するにはどうすればよいですかblogs_settings.owner_id = users.user_id。前もって感謝します。あなたの助けに感謝します。

編集:

}

これにより、次のクエリが実行されます。

SELECT blogs_settings.*, users. usernameAS usernameFROM blogs_settingsINNER JOIN usersON blogs_settings. owner_id= users.user_id

ただし、resultSet には、結合された「ユーザー」テーブルのユーザー名フィールドが含まれていません。ただし、phpmyadmin でクエリを実行すると、すべて問題なく、「users」テーブルの「username」フィールドが結合されます。どうしたの?

EDIT 2 OK、次のことを試しました:

実行されたクエリは次のとおりです。

phpmyadmin で実行すると、ユーザー テーブルのユーザー名フィールドが結合されます。zf2 の場合はそうではありません。

オブジェクト全体のダンプは次のとおりです。

アップ...何かアイデアはありますか?

0 投票する
1 に答える
710 参照

zend-framework2 - Zend Framework 2 ユーザー ガイドの AlbumTableGateway

現在の(2.1)ZF2ユーザーガイドの「データベースとモデル」の章にコードスニペットがありますが、わかりません:

(ブロック "ServiceManager を使用してテーブル ゲートウェイを構成し、AlbumTable に挿入する")

変数$smは後で のインスタンスになりますZend\ServiceManager\ServiceManagerよね?メソッド Zend\ServiceManager\ServiceManager#get(...) は、最初の引数としてクラス名を想定しています。ただし、クラス AlbumTableGateway はありません。モデル クラスは、Album\Model\Album と Album\Model\AlbumTable の 2 つだけです。

ガイドの間違いですか、それともコードの理解が間違っていますか?

ありがとう