Я получаю сообщение об ошибке при использовании метода getAttributes: «Вызовите функцию-член getAttributes () для не-объекта».
Теперь, в моем контроллере:
$notifications = Notifications::return_new()->getAttributes(); var_dump($notifications);
В модели
public static function return_new(){ return Notifications::find()->where(['is_seen' => 0])->all(); }
Теперь, документы Yii говорят, что getAttribute () принимает массив в качестве параметра, поэтому я попытался
$notifications = Notifications::return_new()->getAttributes('text');
но он по-прежнему сохраняется с той же ошибкой. Любая помощь?
Вот модель
<?php namespace frontend\models; use Yii; */ class Notifications extends \yii\db\ActiveRecord { public static function tableName() { return 'notifications'; } public function rules() { return [ [['created_on', 'user_id', 'text'], 'required'], [['user_id'], 'integer'], [['created_on'], 'safe'], [['text'], 'string', 'max' => 255] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id' => 'ID', 'created_on' => 'Created On', 'user_id' => 'User ID', 'text' => 'Text', ]; } public static function count_new() { $new = Notifications::find()->where(['is_seen' => 0])->all(); return count($new); } public static function return_new(){ return Notifications::find()->where(['is_seen' => 0])->all(); } public function return_all(){ return Notifications::find()->all(); } public static function checkst(){ return Notifications::find()->where(['id' => 3])->one(); } public function return_by_date () { // write something here. } }
Если вы используете all()
вы получаете коллекцию моделей, а затем вы должны ссылаться на
Notifications::return_new()[0]->getAttributes();
иначе вы можете
public static function return_new(){ return Notifications::find()->where(['is_seen' => 0])->one(); }
и в этом случае вы можете использовать
$notifications = Notifications::return_new()->getAttributes();