День добрый. Начал изучать yii2. Есть вопрос , не могу правильно получить данные с модели в контроллере.
код контроллера
public function actionChanelssetting(){
if(isAdmin()){
$model = app\models\ChanelsSetting::find()->count();// не получаются данные
return $this->render('chanelssetting',[
'model' => $model,
]);
}
else{
return $this->redirect(['site/index']);
}
}
код модели
namespace app\models;
use Yii;
use yii\db\ActiveRecord;
use yii\base\Model;
class ChanelsSetting extends ActiveRecord{
public static function tableName(){
return '{{%chanelssetting}}';
}
public function rules(){
return [
[['id', 'active'], 'integer'],
[['daily_limit_today ', 'daily_limit_tomorrow'], 'required'],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Название',
'slug' => 'Сокращенное название',
'daily_limit_today' => 'Дневной лимит на сегодня',
'daily_limit_tomorrow' => 'Дневной лимит на завтра',
];
}
}
На выходе получаю ошибку. Если удалить строку с получением данных в контроллере,то вьюха работает, но без данных.
An Error occurred while handling another error:
exception 'yii\web\HeadersAlreadySentException' with message 'Headers already sent in /home/i/infowe8i/msg.webcom.mobi/models/ChanelsSetting.php on line 42.' in /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/web/Response.php:366
Stack trace:
#0 /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/web/Response.php(339): yii\web\Response->sendHeaders()
#1 /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/web/ErrorHandler.php(135): yii\web\Response->send()
#2 /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/base/ErrorHandler.php(111): yii\web\ErrorHandler->renderException(Object(yii\web\HeadersAlreadySentException))
#3 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\HeadersAlreadySentException))
#4 {main}
Previous exception:
exception 'yii\web\HeadersAlreadySentException' with message 'Headers already sent in /home/i/infowe8i/msg.webcom.mobi/models/ChanelsSetting.php on line 42.' in /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/web/Response.php:366
Stack trace:
#0 /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/web/Response.php(339): yii\web\Response->sendHeaders()
#1 /home/i/infowe8i/msg.webcom.mobi/vendor/yiisoft/yii2/base/Application.php(392): yii\web\Response->send()
#2 /home/i/infowe8i/msg.webcom.mobi/web/index.php(16): yii\base\Application->run()
#3 {main}
На вашем скриншоте с ошибкой сказано, что приложение не может найти класс app\conttrollers\app\models\ChanelsSetting
.
Очевидно, что неверно указано FQCN (Fully Qualified Class Name) класса ChanelsSetting
.
В вашем случае, вы забыли добавить знак \
в начало имени класса, и PHP искал его в текущем namespase.
Подробнее о том, что произошло:
Контроллер находится в пространстве имён app\controllers
.
В коде вы используете класс app\models\ChanelsSetting
. Так как в начале нет знака \
, PHP считает, что указано относительное имя, а потому добавляет в начало текущее пространство имён
app\controllers + app\models\ChanelsSetting = app\controllers\app\models\ChanelsSetting
Если бы вы указали \
в начале (\app\models\ChanelsSetting
) PHP посчитал бы имя абсолютным, и такого недоразумения не было бы.
Подробнее о том, как PHP работает с пространствами имён читайте тут:
https://www.php.net/manual/ru/language.namespaces.php
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть одностраничник в котором есть форма по типу "оставить заявку" к которой в свою очередь привязан следующий php скрипт :
В нашей стране очень ограничен внешний трафик либо частенько отваливаетсяЕсть сервер внутренний, NGINX
Нужно , чтобы колонки соотвествовали значениям , к примеру в колонке возраст только ячейки с возрастом и тд
Имеет место быть некий сайт с платными услугамиОнлайн реализованы отношения с кассой через API