Anonymous
т.е в методе обращаюсь API Woocommerce и API отдает мне данные в таком виде теперь мне на прямую нужно вывести эти данные в GridView
Евгений
моделькам в принципе всё равно откуда ты достаёшь данные :)
Павел
Ну делай класс модели только не наследуйся от ActiveRecord
Евгений
не помню как оно там называется по научному ... модельки используемые для поиска ... генерируются через gii даже
Anonymous
можете пример какой то привести? как то не могу сообразить, переработался наверное а сроки горят
Евгений
на сколько я помню там не особо что-то поменялось в этом плане
Anonymous
выручайте
HikkiMike
выручайте
денег нет
Anonymous
денег нет
причем тут деньги, мне просто путь указать ссылочкой на пример какой-то
HikkiMike
да блин чел шучу
Павел
Тебе пример работы с гридом или пример модели для получения данных?
Павел
Умеешь градом управлять?
К ночи чем только не научишься управлять 😂👍
Evgeny
Народ, парню совсем не в моготу, не до шуток((
Varyen
🎅
Парни, кто нибудь подскажет четкие видосики про vuejs 2? можно на англ
Varyen
и как dataprovider используй
Павел
Народ, парню совсем не в моготу, не до шуток((
Так пусть ответит нормальный вопрос жи есть я задал
Павел
в CArrayDataProvider его заверни
Можно, но тогда подгрузка динамическая при переходе страниц забота контроллера
Павел
Имхо православно через модель
Varyen
почему? он экстендит CDataProvider, там есть пагинация
Varyen
должно работать в теории )
Varyen
собственно CActiveDataProvider его же экстендит, который в большинстве случаев этим виджетом отображают
Павел
Да кстати действительно
Павел
Православно через модель, но быстрее через CArrayDataProvider
Павел
Декодь json и пихай в массив
Anonymous
спасибо, сейчас попробую
who are you
Почему битрикс популярен?
Маркетинг , расскрутили
Павел
спасибо, сейчас попробую
В доках действительно есть поддержка пагинации, все весело
Anonymous
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); }
Anonymous
как то так?
Anonymous
та ничего страшного, всеровно на локалке всё делается
Anonymous
сделал, но вылетает ошибка В классе TbTypeahead должны быть определены значения свойств "model" и "attribute", либо "name".
Павел
http://www.yiiplayground.com/index.php?r=UiModule/dataview/gridViewArray
Павел
Вот как то так
Anonymous
спасибо
Павел
Что заработало?
Павел
Ща в тостере ещё тогда запощу
Павел
До кучи
Evgeny
Подскажите плиз. Вот что бы вывести все элементы таблицы можно использовать 2 варианта: $posts = Post::find()->with('category')->all(); $posts_model = new \app\models\Posts(); а можно для $posts_model сделать $posts_model->joinWith ?? вернее так нельзя, а как сделать связный запрос тогда?
Evgeny
$posts - выводит все посты $posts_model - только нужный
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
как создание нового объекта выведет только нужный?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Post::findOne($criteria) тогда уж
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
или Post::find()->with(...)->andWhere(...)->one();
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
но лучше создать потомка ActiveQuery для таких вещей
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
и потом уже где нужно Post::find()->всеЧтоУгодно()->one()
Evgeny
а через модель такую связь организовать можно?
Evgeny
прост в самой модельке у меня прописаны связи
Evgeny
но задействовать их можно через joinWith
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ну получи модель и от модели обращайся к отношению
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если тебе для одной
Evgeny
как от модели обратиться к отношению
Evgeny
->getUser()
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$model = Post::findOne($id);
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$user = $model->user;
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
если геттер на getUser()
Evgeny
Evgeny
связь вроде верная
Evgeny
$posts = new Posts(); VarDumper::dump($posts->user); // null
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
а что в user_id?
Evgeny
id автора поста
Evgeny
по которому я хочу найти реальное имя его, а не цифровой номер
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
так
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$posts = new Posts();
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ты создаешь новый объект Posts
Evgeny
да
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
у него и будет user_id = null
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$post = Posts::findOne($id);
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$user = $post->user; // Если есть что-то в user_id (с fk) то вернет User
Evgeny
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
ты как при создании нового объекта хочешь получить что-то конкретное?
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
технически у тебя в init() может быть что-то прописано, то да на выходе ты получишь конкретную запись, но это было бы бредово. Поэтому скорее всего у тебя там пустой объект Posts
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
тебе нужно получить с базы какую-то запись, ты должен сделать это через ActiveQuery, быстрый способ через findOne() от Posts см выше.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
С отношением у тебя все в порядке