2016-09-16 7 views
0

こんにちは、私はなってきているGetting unknown property: app\models\ActiveCurriculum::periodperiod列が、私はテーブルを結合するために、このコードを使用しているscheadテーブル取得不明なプロパティのYii 2 Joinwithは

に位置しています。

ActiveCurriculum::find() 
           ->select('scstock.*') 
           ->joinWith('schead') 
           ->where(['schead.TrNo' => $TrNo]) 
           ->one(); 

私を助けてくれますか?

EDIT 1(固定)

SQLSTATE [42000]:構文エラーまたはアクセス違反:1064あなたは、あなたのSQL構文でエラーが発生しています。 MariaDBサーバーのバージョンに対応するマニュアルを確認して、WHERE scheadの近くで正しい構文を使用してください。 TrNo = 1行目の '29005' ' 実行中のSQLは次のとおりです。SELECT scstock。* FROM scstock LEFT JOIN schead WHERE scheadTrNo =「29005」

enter image description here

編集2:私はそれを修正するために管理が、私は再び

新しいエラーを取得しています「Aがテーブルを結合する、句が参加型の配列として指定する必要があります参加オプションで条件を結合することができます。

ActiveCurriculum::find() 
           ->select(`scstock.*`) 
           ->leftJoin(`schead`) 
           ->where([`schead.TrNo` => $TrNo]) 
           ->one(); 
+0

それはあなたのテーブル名でなければなりませんし、joinWithはリレーション名でなければなりません。 –

+0

は 'ActiveCurriculum'モデルを示しています。 –

+0

長いようですhttp://paste.ofcode.org/xDpYvwimZ2JNHSnJzi8ipS – user827391012

答えて

0
ActiveCurriculum::find()->select('scstock.*') 
         ->joinWith('schead') 
         ->where(['schead.TrNo' => $TrNo]) 
         ->one(); 
// here joinWith('schead') means `schead` is name of the class 
ActiveCurriculum::find()->select('scstock.*') 
         ->joinLeft('schead','schead.scheadid=scstock.scheadid') // scheadid is the common field between two fields 
         ->where(['schead.TrNo' => $TrNo]) 
         ->one(); 
+0

別のエラーを表示するために投稿を更新しました。 – user827391012

+0

あなたはscstockテーブルとscheadテーブルの間で共通するフィールドを教えていただけますか –

+0

問題が解決したかどうか教えてください –

関連する問題