villiwalla
@villiwalla
HTML-верстка

Почему не вызывается метод и класс not found?

При вызове статического метода вываливает ошибку: "call_user_func() expects parameter 1 to be a valid callback, class 'BA::class' not found". Почему не работает call_user_func и почему 'BA::class' not found? Если namespace у модели где метод getProduct() такой же common\models как и у модели (у любых моделей которые дергается методом getProduct будет и есть одинаковый namespace) 'BA::class' .
public function getProduct() {
        $category = Category::findOne($this->category_id);

        if(!is_null($category->parent_id)) {
            $category = Category::findOne($category->parent_id);
        }

        $model = $category->title;

        if(count($model = explode(' ', $model)) > 1) {
            for($i = 0; count($model) > $i; $i++) {
                $model[$i] = ucfirst($model[$i]);
            }
            $model = implode($model, '');
        } else {
            $model = ucfirst($model[0]);
        }

        $model = $model.'::class';
        $model = call_user_func(model);

        return $this->hasOne($model, ['id' => 'product_id']);
  • Вопрос задан
  • 351 просмотр
Пригласить эксперта
Ответы на вопрос 1
Вызов статического метода класса осуществляется через передачу массива первым аргументом
call_user_func(array('MyClass', 'myCallbackMethod'));
Ответ написан
Ваш ответ на вопрос

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

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