Почему Micro не видит модели?

Имеется action в котором я пытаюсь вытащить все записи из таблицы:
public function getAccounts() {
        $accounts = Accounts::find();

        return $this->response->setJsonContent(['accounts' => $accounts])->send();
    }


В PostMan выдает
<br />
<b>Warning</b>:  class 'AdminController' does not have a method 'Accounts' in
<b>C:\OSPanel\domains\fisher.loc\public\index.php</b> on line
<b>20</b>
<br />


Хотя в загрузчике директории указаны.
Так выглядит сама модель
<?
use Phalcon\Mvc\Model;

class Accounts extends Model {
    public $id;

    public $login;

    public $password;

}


В чем проблема?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 2
RomaZveR
@RomaZveR
CEO AlertMoney, PHP/Golang Developer
В загрузчике нужно зарегистрировать неймспейс и директорию моделей

$loader = new \Phalcon\Loader();

$loader->registerNamespaces(
    [
        'App\\Models' => __DIR__ . '/models/',
    ]
);

$loader->registerDirs(
    [
        ...
         __DIR__ . '/models/',
        ...
    ]
)->register();


namespace App\Models;

class Accounts extends \Phalcon\Mvc\Model {
    public $id;

    public $login;

    public $password;

    public $steam_guard;

    public $email;

    public $worker_id;
}


use App\Models\Accounts;

class AdminController extends \Phalcon\Mvc\Controller {
    public function getAccounts() {
        $accounts = Accounts::find();
        
        return $this->response->setJsonContent(['accounts' => $accounts])->send();
    }
}
Ответ написан
Комментировать
@VaniXac Автор вопроса
17 лет
$accounts = Accounts::find();
        $this->response->setJsonContent(['accounts' => $accounts])->send();

Все сделал как сказали. Пространство имен добавлено.
Просто пустая страница. Вообще пустота.
Но если убрать обращение к модели, то json отправляется.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы