Задать вопрос
@alxsmrn

Почему не видны методы подключенного класса в Yii2?

Необходимо создать контроллер для парсинга на Yii2. Подключил библиотеку Simple HTML DOM parser. Но почему-то не видит методы find. Не могу понять, почему.
<?php

namespace app\controllers;

use keltstr\simplehtmldom\SimpleHTMLDom;
use yii\web\Controller;


class ParseController extends Controller
{
    public $news;
    public function actionParse($sel_from,$sel_as,$url,$how_many_news)
    {
        $html = SimpleHTMLDom::file_get_html($url);
        $i='0';
        foreach ($html->find($sel_from) as $article)
        {
            $this->news=$article->find($sel_as,0)->innertext;
            $i++;
            if ($i == $how_many_news) break; // прерывание цикла
        }
        return $this->news;

    }
}
  • Вопрос задан
  • 355 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Пологаю, что ошибка тут.
$html->find($sel_from)

Метод find - является Active Query, а не AR. короче говоря, во внутрь себя он ничего не принимает. Укажите условия и допишите численность.
//Так 
Some::find()->where(['id'=> $model->id])->one();

//Или так 
Some::find()->where(['id'=> $model->id])->all();

//Либо использовать полноценные AR findAll и findOne
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Insolita
@Insolita
Отчаянная домохозяйка
Но почему-то не видит методы find. Не могу понять, почему.

в каком смысле "не видит" - count($html->find($sel_from)) что возвращает?
$html = SimpleHTMLDom::file_get_html($url); - вы прямо урл дёргаете? в $html результат есть?
или не видит методов в том смысле что автокомплит не работает?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы