Не могу найти ошибку почему не выводится в гриде поле из таблицы requisites если у записи отмечен флаг NULL (поле default)
Но выводятся все номера
Модель companies
Код: Выделить всё
<?php
namespace app\models;
use Yii;
class Companies extends BaseActiveRecord
{
public $requisitesNameTelfax;
public static function tableName()
{
return 'companies';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['name'
//,
// 'basket'
],
'required'],
[['name'], 'string'],
];
}
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Краткое наименование организации',
'requisitesNameTelfax' => 'Телефон/факс',
];
}
/* Геттер для полного наименования компании */
public function getRequisitesName() {
return $this->Requisites->fullname;
}
public function getRequisites()
{
return $this->hasMany(Requisites::className(), ['company_id' => 'id']);
}
}
Код: Выделить всё
<?php
namespace app\models;
use Yii;
class Requisites extends BaseActiveRecord
{
protected $primaryKey = 'id';
public $companiesName;
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'requisites';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['fullname'], 'required'],
];
}
/**
* {@inheritdoc}
*/
/**
* @return \yii\db\ActiveQuery
*/
public function getCompanies()
{
return $this->hasOne(Companies::className(), ['id' => 'company_id']);
}
/* Геттер для наименования компании */
public function getCompaniesName() {
return $this->Companies->name;
}
}
Код: Выделить всё
public function actionIndex()
{
$searchModel = new CompaniesSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$data__ = Requisites::find()->where(['default'=>null])->all();
foreach ($data__ as $value) {
$data_telfax[$value->id]=$value->telfax;
}
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'data_telfax' => $data_telfax
]);
}
Код: Выделить всё
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'name:ntext',
[
'attribute' => 'requisitesNameTelfax',
'value' => function($data_telfax){
foreach ($data_telfax as $key => $value){
return "\$data_telfax[$key] => $value.\n"; //здесь выводит почему-то id от Провайдера
}
},
],
...
<?php
debug($data_telfax); //здесь нормально выводит поля requisites->telfax . (номера телефонов)
?>
Код: Выделить всё
Getting unknown property: app\models\Companies::telfax
Код: Выделить всё
[
'attribute' => 'requisitesNameTelfax',
'value' => function($data_telfax){
return $data_telfax->telfax;
},
],
но мне надо один ко многим и флаг использования 1 записи
Код: Выделить всё
public function getRequisites()
{
return $this->hasOne(Requisites::className(), ['company_id' => 'id']);
}