
Евгений
14.06.2017
18:34:13
если прям очень надо грид вью - модель

Sergey
14.06.2017
18:35:00
я их вывожу запросом, с базы данных Woocommerce и получаю, мне надо на прямую их вывести без использования другой базы т.е не использовать модели

Евгений
14.06.2017
18:37:04
почему не использовать модель? чем мешает?

Павел
14.06.2017
18:37:16
Ну сделай класс модели не ActiveRecord и получай через нее данные это будет по православному

Google

Павел
14.06.2017
18:37:47
Или используй свой конекшн к БД для этой модели

Sergey
14.06.2017
18:38:04
т.е в методе обращаюсь API Woocommerce и API отдает мне данные в таком виде теперь мне на прямую нужно вывести эти данные в GridView

Евгений
14.06.2017
18:38:35
моделькам в принципе всё равно откуда ты достаёшь данные :)

Павел
14.06.2017
18:38:40
Ну делай класс модели только не наследуйся от ActiveRecord

Евгений
14.06.2017
18:39:06
не помню как оно там называется по научному ... модельки используемые для поиска ... генерируются через gii даже

Павел
14.06.2017
18:39:32

Sergey
14.06.2017
18:39:59
можете пример какой то привести? как то не могу сообразить, переработался наверное а сроки горят

Евгений
14.06.2017
18:40:02
на сколько я помню там не особо что-то поменялось в этом плане

Sergey
14.06.2017
18:40:05
выручайте

Mihail
14.06.2017
18:41:20

Sergey
14.06.2017
18:42:19
денег нет
причем тут деньги, мне просто путь указать ссылочкой на пример какой-то

Mihail
14.06.2017
18:42:40
да блин чел шучу

Павел
14.06.2017
18:44:29
Тебе пример работы с гридом или пример модели для получения данных?

Google

Ярослав
14.06.2017
18:45:48

Mihail
14.06.2017
18:47:09

Павел
14.06.2017
18:48:27

Evgeny
14.06.2017
18:49:05
Народ, парню совсем не в моготу, не до шуток((

Varyen
14.06.2017
18:49:05

Stanislav
14.06.2017
18:49:15
Парни, кто нибудь подскажет четкие видосики про vuejs 2? можно на англ

Varyen
14.06.2017
18:52:20
и как dataprovider используй

Павел
14.06.2017
18:52:47

Sergey
14.06.2017
18:54:04

Павел
14.06.2017
18:54:43
Имхо православно через модель

Varyen
14.06.2017
18:55:39
почему? он экстендит CDataProvider, там есть пагинация
должно работать в теории )
собственно CActiveDataProvider его же экстендит, который в большинстве случаев этим виджетом отображают

Павел
14.06.2017
18:58:38
Да кстати действительно
Православно через модель, но быстрее через CArrayDataProvider
Декодь json и пихай в массив

Sergey
14.06.2017
19:02:09
спасибо, сейчас попробую

Konstantin
14.06.2017
19:03:20

Google

Павел
14.06.2017
19:04:20

Sergey
14.06.2017
19:04:52
public function actionParseProducts()
{
$client = new WC_API_Client(
'http://project4.ru',
'ck_b0a77ba20fbae531423ba8479fe8f9a84c6678f9',
'cs_1e78436c2bdc556022495d7322deb2dec53a1722',
$this->module->options
);
$data_prod = $client->products->get();
$jsondecode = CJSON::decode($data_prod, true);
$arrayDataProvider=new CArrayDataProvider($jsondecode, array(
'id'=>'id',
'pagination'=>array(
'pageSize'=>10,
),
));
$params =array(
'arrayDataProvider'=>$arrayDataProvider,
);
$this->render('index', $params);
}
как то так?


Павел
14.06.2017
19:05:59
public function actionParseProducts()
{
$client = new WC_API_Client(
'http://project4.ru',
'ck_b0a77ba20fbae531423ba8479fe8f9a84c6678f9',
'cs_1e78436c2bdc556022495d7322deb2dec53a1722',
$this->module->options
);
$data_prod = $client->products->get();
$jsondecode = CJSON::decode($data_prod, true);
$arrayDataProvider=new CArrayDataProvider($jsondecode, array(
'id'=>'id',
'pagination'=>array(
'pageSize'=>10,
),
));
$params =array(
'arrayDataProvider'=>$arrayDataProvider,
);
$this->render('index', $params);
}
Ну ключи то к API нельзя же так выкладывать

Sergey
14.06.2017
19:07:06
та ничего страшного, всеровно на локалке всё делается
сделал, но вылетает ошибка В классе TbTypeahead должны быть определены значения свойств "model" и "attribute", либо "name".

Павел
14.06.2017
19:09:56
http://www.yiiplayground.com/index.php?r=UiModule/dataview/gridViewArray
Вот как то так

Sergey
14.06.2017
19:15:19
спасибо

Павел
14.06.2017
19:16:02
Что заработало?
Ща в тостере ещё тогда запощу
До кучи

Evgeny
14.06.2017
20:58:01
Подскажите плиз.
Вот что бы вывести все элементы таблицы можно использовать 2 варианта:
$posts = Post::find()->with('category')->all();
$posts_model = new \app\models\Posts();
а можно для $posts_model сделать $posts_model->joinWith ??
вернее так нельзя, а как сделать связный запрос тогда?
$posts - выводит все посты
$posts_model - только нужный

☕ CunningFox
14.06.2017
21:03:48
как создание нового объекта выведет только нужный?
Post::findOne($criteria) тогда уж
или Post::find()->with(...)->andWhere(...)->one();
но лучше создать потомка ActiveQuery для таких вещей
и потом уже где нужно Post::find()->всеЧтоУгодно()->one()

Google

Evgeny
14.06.2017
21:06:10
а через модель такую связь организовать можно?
прост в самой модельке у меня прописаны связи
но задействовать их можно через joinWith

☕ CunningFox
14.06.2017
21:07:11
ну получи модель и от модели обращайся к отношению
если тебе для одной

Evgeny
14.06.2017
21:07:39
как от модели обратиться к отношению
->getUser()

☕ CunningFox
14.06.2017
21:07:55
$model = Post::findOne($id);
$user = $model->user;
если геттер на getUser()

Admin
ERROR: S client not available

Evgeny
14.06.2017
21:12:17
связь вроде верная
$posts = new Posts();
VarDumper::dump($posts->user); // null

☕ CunningFox
14.06.2017
21:19:32
а что в user_id?

Evgeny
14.06.2017
21:19:59
id автора поста
по которому я хочу найти реальное имя его, а не цифровой номер

☕ CunningFox
14.06.2017
21:20:38
так
$posts = new Posts();
ты создаешь новый объект Posts

Google

Evgeny
14.06.2017
21:21:03
да

☕ CunningFox
14.06.2017
21:21:11
у него и будет user_id = null
$post = Posts::findOne($id);
$user = $post->user; // Если есть что-то в user_id (с fk) то вернет User

Evgeny
14.06.2017
21:22:16

☕ CunningFox
14.06.2017
21:23:13
ты как при создании нового объекта хочешь получить что-то конкретное?
технически у тебя в init() может быть что-то прописано, то да на выходе ты получишь конкретную запись, но это было бы бредово. Поэтому скорее всего у тебя там пустой объект Posts
тебе нужно получить с базы какую-то запись, ты должен сделать это через ActiveQuery, быстрый способ через findOne() от Posts см выше.
С отношением у тебя все в порядке

Evgeny
14.06.2017
21:29:04
тут немножко хитрее, поэтому сижу втыкаю.
Мне даже не пост надо найти, а коммент к посту.
так что вернее сказать что $comment = new Comments();
Система написана не мной и достаточно объемная.
Создавая таким образом
$comment = new Comments();
до вьюхи доходят данные уже с отобранным списком комментов для конкретного поста.

☕ CunningFox
14.06.2017
21:29:33
код покажи лучше

Evgeny
14.06.2017
21:30:10

☕ CunningFox
14.06.2017
21:30:22
если у тебя во вью отправляется список комментов и тебе надо получить имя автора то нужно использовать в ActiveQuery with() в противном случае на каждый коммент ты получишь по 1 лишнему запросу к бд
если будешь обращаться к отношению без with()

Evgeny
14.06.2017
21:31:01
фишка в том что я пока не понял как вот эта штука
превращается в список комментариев

☕ CunningFox
14.06.2017
21:31:19
какая именно?
у тебя тут 2 поведения
надо смотреть их код

Evgeny
14.06.2017
21:32:01

☕ CunningFox
14.06.2017
21:32:28
а что за метод d()?

Evgeny
14.06.2017
21:32:30