Ответы пользователя по тегу Phalcon
  • Почему не работает save() и create() в Phalcon?

    RomaZveR
    @RomaZveR
    CEO AlertMoney, PHP/Golang Developer
    Так быть не может. Либо фреймворк бросит исключение на случай проблем с подключением к бд, либо getMessages() содержат информацию об ошибке.

    $accounts = new Accounts;
            $accounts->login = 'test';
            $accounts->password = 'ABCDEF';
            $accounts->steam_guard = '0';
            $accounts->worker_id = '1';
            if ($accounts->save() === false) {
                   $messages = $accounts->getMessages();
                   foreach ($messages as $message) {
                                echo $message, "\n";
                    }
            }


    Кстати, если в таблице есть NotNull поля со значением по умолчанию, и в модели это поле вдруг получается пустое, то ORM при сохранении вернет false, но при этом запись в бд упадет, т.к для mysql все ок.

    Структуру таблицы в студию
    Ответ написан
    Комментировать
  • Почему Micro не видит модели?

    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();
        }
    }
    Ответ написан
    Комментировать
  • Как сконфигурировать nginx php-fpm для phalcon фреймворка в панели vestaCP?

    RomaZveR
    @RomaZveR
    CEO AlertMoney, PHP/Golang Developer
    Хоть уже и прошел год.
    Обработку несуществующих роутов нужно делать на стороне приложения.

    $router = $di->getRouter(FALSE);
    //$router = Phalcon\Mvc\Router(FALSE);
    ...
    ...
    $router->notFound([
        'controller' => 'index',
        'action' => 'route404'
    ]);
    
    ...
    class IndexController extends ControllerBase
    {
       public function route404Action()
       {
            $this->view->disable();
            $this->response->setRawHeader('HTTP/1.1 404 Not Found');
            $this->response->setContent('<b>404, bratishka :(</b>');
            $this->response->send();
       }
    }
    Ответ написан
    Комментировать