Ошибка Setting unknown property: yii\db\ActiveQuery::name

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
riaron
Сообщения: 77
Зарегистрирован: 2018.12.04, 14:12

Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение riaron »

выдает ошибку
вот контроллер:

Код: Выделить всё

 public function actionAtd()
    {
        return $this->render('atd');
    }
вот вью:

Код: Выделить всё

use app\models\Orders;
use app\models\Onjob;
use app\models\User;

global $user;

if(Yii::$app->user->isGuest){$user=Yii::$app->request->userIP;}else{$user=Yii::$app->user->identity->username;}

$request = Yii::$app->request;

$id = $request->get('id');
			$date=date('G:i:s Y:m:d');
$orders=Orders::find()->where(['id'=>$id])->one();
$onjob = Onjob::find();

    global $user;
    
        $onjob = Onjob::find();
        $date1 = $date;


        $onjob->name = $orders->name;
        $onjob->problem = $orders->problem;
        $onjob->text = $orders->text;
        $onjob->phone = $orders->phone;
        $onjob->date = $orders->date;
        $onjob->date1 = $date1;
        $onjob->save();
таблица onjob id name problem text phone date date1
таблица orders id name problem text phone date
модель Orders

Код: Выделить всё

<?php

namespace app\models;


use yii\db\ActiveRecord;

class Orders extends ActiveRecord
{


}
модел ь Onjob

Код: Выделить всё

<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 21.12.2018
 * Time: 22:28
 */

namespace app\models;


use yii\db\ActiveRecord;

class Onjob extends ActiveRecord
{



}

unknownby
Сообщения: 290
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение unknownby »

Во-1 что это за дичь в представлении? Логика вся в модели, представление для отображения данных.
Во-2 где rules с атрибутами в твоих моделях? Поэтому и ругается, что не находит атрибут в модели.

А дату куда собрался? Переменная есть, а не используется.
Для БД datetime

Код: Выделить всё

date('Y-m-d H:i:s')
Для вывода людям :)

Код: Выделить всё

date('d.m.Y H:i:s')

riaron
Сообщения: 77
Зарегистрирован: 2018.12.04, 14:12

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение riaron »

Исправил, все равно не работает

Код: Выделить всё

<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 21.12.2018
 * Time: 22:28
 */

namespace app\models;


use yii\db\ActiveRecord;

class Onjob extends ActiveRecord
{

    public function rules(){
        return [
            [ ['name', 'phone','problem', 'text','date1','date'], 'required'],
        ];
    }



}

unknownby
Сообщения: 290
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение unknownby »

riaron писал(а):
2020.02.09, 19:17
Исправил, все равно не работает

Код: Выделить всё

<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 21.12.2018
 * Time: 22:28
 */

namespace app\models;


use yii\db\ActiveRecord;

class Onjob extends ActiveRecord
{

    public function rules(){
        return [
            [ ['name', 'phone','problem', 'text','date1','date'], 'required'],
        ];
    }



}
А если так сделаешь?

Код: Выделить всё

public function rules(){
        return [
            [ ['name', 'phone','problem', 'text','date1','date'], 'required'],
            [ ['name', 'phone','problem', 'text','date1','date'], 'safe'],
        ];
    }

riaron
Сообщения: 77
Зарегистрирован: 2018.12.04, 14:12

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение riaron »

Показывает ту же ошибку

riaron
Сообщения: 77
Зарегистрирован: 2018.12.04, 14:12

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение riaron »

http://mysite2.kl.com.ua/web/index.php?r=site%2Forders
Подробнее можно посмотреть здесь
И нажать на ссылку в выполнении

unknownby
Сообщения: 290
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение unknownby »

riaron писал(а):
2020.02.10, 00:10
http://mysite2.kl.com.ua/web/index.php?r=site%2Forders
Подробнее можно посмотреть здесь
И нажать на ссылку в выполнении
В Onjob добавил, а в Orders мне добавить за тебя? :)
Ты же хочешь из Orders взять поле name, которого у тебя нет в rules и записать его в Onjob в котором тоже нет такого атрибута (после добавления появился)

riaron
Сообщения: 77
Зарегистрирован: 2018.12.04, 14:12

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение riaron »

Я себе добавлял в operserver. В сайте не добавлял, просто хотел чтобы посмотрели может в другом проблема

unknownby
Сообщения: 290
Зарегистрирован: 2019.11.05, 16:34
Контактная информация:

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение unknownby »

riaron писал(а):
2020.02.10, 09:27
Я себе добавлял в operserver. В сайте не добавлял, просто хотел чтобы посмотрели может в другом проблема
Такие ошибки возникают в случаях:
во-1 когда у тебя в БД есть такое поле, но ты его не определил в правилах rules()
во-2 когда у тебя в БД нет такого поля, но ты, например, указал в каком-нибудь GridView атрибут "random_field". А значит нужно в модели поиска или основной модели указать этот атрибут

Код: Выделить всё

public $random_field
И с правила записать как safe
В правилах записывать надо не только required, но и конкретное правило под каждый атрибут.
Правило - required говорит об обязательности, но не говорит ничего о самой сущности атрибута, как string, email, integer, boolean, safe
Решилась проблема?

cool
Сообщения: 9
Зарегистрирован: 2015.12.07, 11:11

Re: Ошибка Setting unknown property: yii\db\ActiveQuery::name

Сообщение cool »

riaron писал(а):
2020.02.09, 10:44

Код: Выделить всё

$onjob = Onjob::find();
У вас $onjob - это экземпляр класса ActiveQuery, а не ActiveRecord, как вы видимо ожидаете.

Нужно так:

Код: Выделить всё

$onjob = Onjob::find()->where(...)->one();
или

Код: Выделить всё

$onjob = Onjob::findOne(...);
или

Код: Выделить всё

$onjob = new Onjob();

Ответить