$vacancies = new ArrayDataProvider([
'allModels' => Vacancy::find()->where(['creator' => $creator]),
'pagination' => [
'pageSize' => 30
]
]);
return $vacancies;
$employer = Profile::find()->select('company')->where(['user' => $creator])->one();
public function getVacancy()
{
return $this->hasMany(Vacancy::class, ['id_company' => 'id']); // у одного профиля может быть много вакансий
}
public function getProfile()
{
return $this->hasOne(Profile::class, ['id' => 'id_company']); // у одной вакансии может быть только один профиль.
}
$vacancies = new ArrayDataProvider([
'allModels' => Vacancy::find()->with('profile')->where(['creator' => $creator]),
'pagination' => [
'pageSize' => 30
]
]);
return $vacancies;
echo $vacancies->profile->company;
я не так давно на нем пытаюсь что-то писать.
Связывание таблиц никак не помогает
Но как это делать в этом фреймворке - непонятно
$query = Catalog::find()
->from(['catalog' => Catalog::tableName()])
->where(['catalog.status' => Catalog::STATUS_ACTIVE, 'catalog.parent_id' => null])
->with(['categories'])
->innerJoinWith([
'categories categories',
'categories.products prod' => function(ActiveQuery $query){
$query->andOnCondition(['prod.status' => Products::STATUS_ACTIVE]);
}
]);
$dataProvider = new ActiveDataProvider([
'query' => $query
]);
// $dataProvider передаёте в представление.
echo ListView::widget([
'dataProvider' => $dataProvider,
'layout' => '{items}',
'itemView' => '_includes/_list_view'
])
GET companies/<id_company>/vacancies
class CompanyVacanciesModel extends Model {
public $company;
public $vacancies;
}
class CompanyController {
//обратите внимание на роутинг, он должен быть настроен в модуле соответственно
public function actionsGetVacancies($company_id) {
$dataProvider = new ArrayDataProvider([
'allModels' => Vacancy::find()->with('profile')->where(['creator' => $creator]), //эту переменную не забудьте
'pagination' => [
'pageSize' => 30
]
]);
$companyModel = new CompanyVacanciesModel();
$companyModel->company = CompanyRecord::findOne($company_id); //тут бы еще привести к массиву
$companyModel->vacancies = $dataProvider->getModels(); // и тут
return $companyModel->toArray();
}
}
app\modules\catalog\models\Catalog Object
(
[_locateArray:app\modules\catalog\models\Catalog:private] =>
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 2
[name] => Игровые комплексы
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 2
[name] => Игровые комплексы
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
[categories] => Array
(
[0] => app\modules\catalog\models\Catalog Object
(
[_locateArray:app\modules\catalog\models\Catalog:private] =>
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 4
[name] => Детские домики
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 4
[name] => Детские домики
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
[products] => Array
(
[0] => app\modules\production\models\Products Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 15
[title] => Домик Mochtoys игровой
)
[1] => app\modules\production\models\Products Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 16
[title] => Домик Mochtoys с зеленой крышей
)
[2] => app\modules\production\models\Products Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 17
[title] => Игровой дом Keter Фунтик с горкой
)
И в доках не написано об этом ни слова.