0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 126
|
||||||||||||||||
1 | ||||||||||||||||
Добавление в model/Search новых атрибутов17.01.2020, 13:21. Показов 3864. Ответов 8
Метки нет (Все метки)
Добрый день, подскажите почему при добавлении атрибута Restaurant_Name возникает ошибка Getting unknown property: app\models\TransactionSearch::Restaurant_Name. Restaurant_Name
модель Search
0
|
17.01.2020, 13:21 | |
Ответы с готовыми решениями:
8
Добавление новых записей и новых полей Переадресация при поиске из Chrome через search-engine.ru на сайт go.mail.ru + реклама в новых вкладках Переадресация при поиске из Chrome через search-engine.ru на сайт go.mail.ru + реклама в новых вкладках Переадресация при поиске из Chrome через search-engine.ru на сайт go.mail.ru + реклама в новых вкладках - Лече |
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
|
||||||
18.01.2020, 05:11 | 2 | |||||
Сообщение было отмечено Freeslava как решение
Решение
Freeslava, По сути searchModel - это форма. То, что она наследуется от Active Record сделано для упрощения, в идеале, вы должны ее оформлять как форму, т.е. наследовать от Model и прописывать все поля через public свойства. Но это в идеале, если просто хотите добавить поле, то добавьте public свойство.
1
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 126
|
|
18.01.2020, 15:02 [ТС] | 3 |
Огромное спасибо, все работает
0
|
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
|
|
19.01.2020, 00:13 | 4 |
Freeslava, И еще не совсем понятно зачем вы делаете $dataProvider->query->select() внутри контроллера. Для этого же и существует метод search)
Вы даже можете его и переписать и под ArrayDataProvider из вашего закомментированного примера.
0
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 126
|
|
20.01.2020, 10:24 [ТС] | 5 |
Это от долгих и бессмысленных попыток решения ошибки
0
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 126
|
||||||
24.01.2020, 11:09 [ТС] | 6 | |||||
sad67man, Вопрос по этой-же теме когда пытаюсь произвести поиск по данным полям возникает ошибка
Не могу понять где производится COUNT и почему он не видит данную колонку, хотя она прописана в $query Модель Search
The SQL being executed was: SELECT COUNT(*) FROM `transaction` LEFT JOIN `restaurants` ON restaurants.rkcode=transaction.restaurant LEFT JOIN `cardsactive` ON cardsactive.card_number=transaction.card WHERE `Receipts_Amount` LIKE '%3%'
0
|
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
|
||||||
28.01.2020, 01:04 | 7 | |||||
Freeslava, COUNT пытается выполнить ActiveDataProvider для построения пагинации. Видимо он перебивает ваши селекты.
Как вариант решения проблемы напишите свой запрос на общее кол-во элементов.
Freeslava, И в Mysql нельзя использовать алиасы select-ов в блоках WHERE. Нужно делать как-нибудь по другому. Может через group by и having или совмещать с вашим первым вариантом. Или частично переложить логику на php
0
|
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 126
|
|
28.01.2020, 11:32 [ТС] | 8 |
sad67man, Почти получилось
Выдает ошибку SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Order_Qnt' in 'where clause' The SQL being executed was: SELECT COUNT(*) FROM (SELECT `transaction`.`id`, `transaction`.`restaurant`, `transaction`.`restaurant` AS `Restaurant_Code`, ifnull(restaurants.name,transaction.restaurant) AS `Restaurant_Name`, CAST(transaction.rkdate as DATE) AS `RK_Business_Date`, (case when cardsactive.code_loyalty=28 then "10%" when cardsactive.code_loyalty=31 then "AutoClub" else "Unknown" end) AS `Kind`, FORMAT(sum(case transaction.Kind when 3 then transaction.Summa/100 else 0 end),2) AS `Receipts_Amount`, FORMAT(SUM(case transaction.Kind when 1 then transaction.Summa/100 else 0 end),2) AS `Discounts_Amount`, COUNT(DISTINCT transaction.orderGUID) AS `Order_Qnt` FROM `transaction` LEFT JOIN `restaurants` ON restaurants.rkcode=transaction.restaurant LEFT JOIN `cardsactive` ON cardsactive.card_number=transaction.card WHERE `Order_Qnt`='2') `0` Теперь мне необходимо понять, как переделать WHERE `Order_Qnt='2' на WHERE "Order_Qnt"='2'
0
|
2232 / 1278 / 611
Регистрация: 23.08.2015
Сообщений: 3,228
|
|
28.01.2020, 12:46 | 9 |
Никак. В WHERE вы можете брать значения из таблиц, но не из SELECT. Чтоб фильтровать по выбранным данным используйте GROUP BY и HAVING
http://old.code.mu/sql/having.html
0
|
28.01.2020, 12:46 | |
28.01.2020, 12:46 | |
Помогаю со студенческими работами здесь
9
Добавление атрибутов к ActionLink Добавление атрибутов к xml файлу Добавление атрибутов к User(gem Devise) Добавление полей структур в Model/View Qt Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |