Dashboard.phpというメインビューでは、ログインしている従業員の携帯電話を表示します(従業員の電話番号をすべて格納するemployee_phoneテーブルからビューで 'phone 1:'と表示されている任意のフィールドで 'phone_type'(つまりセル、家庭、メイン)で区別され、 'home'または 'main'番号を 'phone 2:'と表示します。注意してください、私は誰かが '携帯電話'の種類を助けることができる場合、私はそれを把握できると確信しているので、わかりやすくするために、私は '家庭の電話プロバイダを残しました。電話番号を表示することができず、いくつかの設定を試しました。何か助けていただければ幸いです。私はこのページを読んだ:http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#querying-dataそれは私の基準に適合しているようだが、私はそれを動作させることはできません。私もここで関連する質問を読んだことがありますが、配列内のデータを処理してListViewまたはGridviewに表示することに関連しているようです。私はまた、プロバイダがemployeeCellPhoneという魔法のメソッドでgetEmployeeCellPhone()メソッドにアクセスできるようにすることができないようです。Yii2リストビューやグリッドビューを使用していない配列に関連するデータを表示
が、私は2つのテーブルを持っている:
従業員表:
ID
のuser_id
employee_phone表:
PHONE_NUMBER
PHONE_TYPE
Employee.phpモデルをEMPLOYEE_ID
ID:
public function getEmployeePhones()
{
return $this->hasMany(\frontend\models\EmployeePhone::className(), ['employee_id' => 'id']);
}
public function getEmployeeCellPhone()
{
return $this->hasOne(\frontend\models\EmployeePhone::className(), ['employee_id' => 'id'])
->where(['=', 'phone_type', 'Cell'])
->all();
}
EmployeeController:
public function actionDashboard($id)
{
$model = $this->findModel($id);
$providerCellPhone = $model->employeeCellPhone;
return $this->render('dashboard', [
'model' => $this->findModel($id),
'providerCellPhone' => $providerCellPhone,
]);
}
Dashboard.phpビュー:
<div class="col-lg-3">
Phone 1: <?= $model->$providerCellPhone ?><br>
Phone 2: <?= $model->$providerHomePhone ?>
</div>
正しい。しかし、私の答えで述べたように、単純に 'foreach'ループを行い、出力を出力することができます – sm1979
間違っている - 私は答えを更新します。私は、オブジェクトである 'employeeCellPhone [0]'を印刷しました。 'employeeCellPhone [0] - > phone_number'を印刷する必要があります。これは、エラーを取り除く必要があります – sm1979
私はそれを行うとき、私はエラー 'クラスfrontend \ models \ EmployeePhoneのオブジェクトは文字列に変換できませんでした'を取得します。その他の提案はありますか? – Marko