私は、実行時にレコードがテーブルに存在することを確認し、そのレコードを返すコントローラ内の関数を持っています。この機能は、同じコントローラ内のモデルの検証として使用されます。たとえば:関数実行後にコントローラからモデルへ変数を渡す方法Yii2
public function actionSave() {
$model = new TestModel() {
if ($this->somethingValidate()) {
try {
--- REST OF THE CODE ---
どのように私は今、TestModel
に$someVariable
変数を渡すと、どちらか保存するかbeforeSave上のデータを操作することができます
public function somethingValidate() {
$someVariable = SomeTable::find()->where(['some_id' => $someVariable])->one();
if ($model) {
return $model;
} else {
return false;
はここで、コントローラの検証一部です。
ご協力いただきまして誠にありがとうございます。
最初に例を正しく理解してください。そこに '$ model'とは何ですか? '$ someVariable'はどこから取りましたか? – Bizley
'$ model'はRESTful呼び出しで保存されている実際のモデルです。' $ someVariable'は別のテーブル、異なるモデルから取得され、検証のためにのみ使用されます。レコードが存在する場合、 '$ model'テーブルで参照されるidフィールドがあります。ここで' $ someVariable-> id'を保存する必要があります。プロジェクトの性質上、私は良いコード例を提供できません。 – TenderloinSky