問題タブ [yii2-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.

0 投票する
0 に答える
192 参照

yii2-model - yii2 非テーブル モデルで $model->save() を実行しようとすると、yii\base\UnknownMethodException エラーが発生する

Calling unknown method: app\modules\employee\models\NewEmployeeForm::save() エラーが $model->save(); を実行しようとすると発生します。

save() メソッドは Model から継承されていると思っていたのですが、こうなってしまいました。独自の save メソッドを作成する必要がありますか? 私は yii2 のやり方に従いたいと思っています。

以下は私のモデルです

前もって感謝します

0 投票する
3 に答える
5375 参照

yii2 - Yii2: シナリオを使用して、アクションごとに異なるモデル フィールドのセットを指定できますか?

Yii2 モデル ページ ( http://www.yiiframework.com/doc-2.0/yii-base-model.html ) の「フィールド」セクションで、「いくつかに基づいて異なるフィールド リストを設定できる」ことがわかります。コンテキスト情報。たとえば、$scenario または現在のアプリケーション ユーザーの権限に応じて、表示可能なフィールドの異なるセットを返したり、一部のフィールドを除外したりできます。"

しかし、シナリオのドキュメント ( http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios ) には、シナリオはモデル属性の検証用に異なるコンテキストを作成するためのものであると書かれています。

モデルからデータを取得し、API の結果として表示するには、デフォルトのアクション (actionIndex、actionView、...) を使用する必要がある Yii2 Restful API を使用しています。これらのメソッド ( http://www.yiiframework.com/doc-2.0/guide-rest-controllers.html#extending-active-controller )をオーバーライドできることはわかっていますが、それらのメソッドで異なるセットのフィールド (さまざまなシナリオに応じて) ?

必要なのは、actionIndex(アイテムリスト)のフィールド1、フィールド2、フィールド3を出力することですが、アクションビュー(アイテムリスト)のフィールド1、フィールド2、フィールド3、フィールド4を出力したいです。

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

php - 許可による Yii2 Gridview フィルター

ユーザーを作成し、各ユーザーに特定の場所を割り当てることができるスーパー管理者がいます。これは、ユーザーの ID と場所の ID を取得する単純なテーブルに格納されます。

次に、クライアントのテーブルがあります。各クライアントには、loc_id という名前の場所もあります。Gridview で、ユーザーが表示権限を持っている場所に住んでいるクライアントのみを表示できるようにするにはどうすればよいですか (ユーザーは、管轄内のクライアントのデータを操作できる一種の管理者です)。

ユーザーIDを取得します

次に、彼が表示できる場所を見つけます

しかし、検索モデルと DataProvider を使用して標準の Gridview にこれを適用し、他のプロパティで GridView をフィルター処理および並べ替えるにはどうすればよいでしょうか?

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

yii2 - ブール値を 1 または 0 ではなく true または false として取得します

MySql データベースを使用しているため、db スキーマで列の型を Tinyint(1) として定義しました。

私の ActiveRecord では、ブール値のバリデーターを設定しました。保存ロジックは期待どおりに機能しています。

私が今望んでいたのは、Yii2 REST サービスを呼び出すときに、boolean フィールドを 1 または 0 ではなく true または false として返すことです。クライアント側では、フレームワークには厳密な比較 (===) が付属しており、1 は true と同じではないためです。

もちろん、コンテンツを送信する前に値を手動で上書きすることも、モデルにロードする前にクライアント側で上書きすることもできますが、よりクリーンなソリューションがあれば幸いです。

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

activerecord - yii2 リレーション列でアクティブ レコードを取得する

特定の列値を持つ AR に関連する ActiveRecordを選択する必要があります。

状況: 「ユーザー」には多くの「ブランチ」がある可能性があります - ジャンクション テーブルを介して、ブランチは部門に関連付けられています。私は を持っておりdepartment_id、この 1 つの部門からブランチを持つユーザーを選択したいと考えています。

デパートメント:

ブランチ:

問題は、Department からこれにアクセスしたくないということです (例: $department->getUsers()....) ActiveQuery

したがって、次のようなユーザーを選択できます。

前もって感謝します !

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

transactions - コールバックを使用した Yii2 のデータベース トランザクション

Yii2 で DB トランザクションを使用する単純なコードがあります。これにより、ユーザーの残高が更新され、ユーザーの残高履歴に新しいレコードが追加されます。

データの整合性を保つために、DB トランザクションを頻繁に使用する必要があります。しかし、上記のような DB トランザクションを処理するには多くのコード行が必要になるため、コードを動員する次の関数を作成しました。

この関数を使用すると、次のようなトランザクションを処理できます。

ご覧のとおり、2 番目の方法はトランザクションを非常に快適に使用できます。しかし、この時点で、dbTransaction関数が正しく機能するかどうかわかりませんか? コードのレビューと、潜在的な問題を指摘するメモを歓迎します。ありがとう