Dashboard.php라는 주보기에서 모든 직원 전화 번호를 저장하고있는 employee_phone 테이블의 로그인 된 직원의 휴대 전화를 표시하려고합니다. 보기에서 '전화 1 :'로 표시된 임의의 필드에서 'phone_type'(예 : 셀, 집, 주)로 구분 된 다음 '집'또는 '기본'번호를 '전화 2 :'로 표시합니다. 누군가가 '셀'전화 유형을 도울 수있는 경우 알아낼 수 있다고 확신하기 때문에 명확성을 위해 '집'전화 공급자를 제외 시켰습니다. 전화 번호를 표시 할 수 없으며 몇 가지 구성을 시도했습니다. 어떤 도움을 주셔서 감사 드리며 나는 새로운면을 미리 사과드립니다. 나는이 페이지를 읽었습니다 : http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#querying-data 그리고 내 기준에 맞는 것 같아요.하지만 그걸 제대로 만들 수는 없어요. 그래서 여기에 관련된 질문을 읽었지만 배열의 데이터로 작업하고 ListView 또는 Gridview에 표시하는 것과 관련이있는 것 같습니다. 필자는 공급자가 employeeCellPhone의 매직 메소드로 getEmployeeCellPhone() 메소드에 액세스 할 수 있도록 할 수없는 것으로 보입니다.Yii2 관련 데이터를 배열에 표시하지 않고 목록보기 또는 Gridview를 사용하지 않음
내가 두 개의 테이블이 있습니다
직원 테이블 :
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