Вопрос по созданию формы

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Вопрос по созданию формы

Сообщение stardevil »

Подскажите пожалуйста!!!! Вот с этого сайта взял как образец форму регистрации http://sectronov.blogspot.com/2011/02/yii.html

Какой путь до формы нужно прописать? (с учетом того что у меня сейчас ссылки выглядят вот так http://localhost/mysite/index.php?r=site/contact

Я пишу путь к форме вот такой http://localhost/mysite/index.php?r=user/signup и у меня выскакивает ошибка

CDbException

CDbConnection failed to open the DB connection: could not find driver

Пишу путь к форме вот такой http://localhost/mysite/index.php?r=signup ошибка вот такая


Error 404
Unable to resolve the request "signup".
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Вопрос по созданию формы

Сообщение lancecoder »

main.php
array(
...
'components'=>array(
'db'=>CDbConnection failed to open the DB connection: could not find driver
),
...
)
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Re: Вопрос по созданию формы

Сообщение stardevil »

lancecoder писал(а):main.php
array(
...
'components'=>array(
'db'=>CDbConnection failed to open the DB connection: could not find driver
),
...
)
Вот мой main.php Что в него надо добавить ))

Код: Выделить всё

<?php

// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'My site',

    // preloading 'log' component
    'preload'=>array('log'),

    // autoloading model and component classes
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),

    'modules'=>array(
        // uncomment the following to enable the Gii tool
        /*
        'gii'=>array(
            'class'=>'system.gii.GiiModule',
            'password'=>'Enter Your Password Here',
             // If removed, Gii defaults to localhost only. Edit carefully to taste.
            'ipFilters'=>array('127.0.0.1','::1'),
        ),
        */
    ),

    // application components
    'components'=>array(
        'user'=>array(
            // enable cookie-based authentication
            'allowAutoLogin'=>true,
        ),
        // uncomment the following to enable URLs in path-format
        /*
        'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
        */
        /*'db'=>array(
            'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
        ),*/
        // uncomment the following to use a MySQL database
        
        'db'=>array(
            'connectionString' => 'postgresql:host=localhost;dbname=dbst',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => 'root',
            'charset' => 'utf8',
                        'tablePrefix' => 'st_',
        ),
        
        'errorHandler'=>array(
            // use 'site/error' action to display errors
            'errorAction'=>'site/error',
        ),
        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class'=>'CWebLogRoute',
                ),
                */
            ),
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        // this is used in contact page
        'adminEmail'=>'webmaster@example.com',
    ),
); 
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Вопрос по созданию формы

Сообщение yiijeka »

Скорее тут форма и yii вообще не причём.
Посмотрите php.ini
postgresql уверены что подключен в расширениях PHP?

А если вы используете PostgreSQL, то он имеет форму записи не postgresql, а pgsql .
Тогда вам нужно в main.php не добавить, а изменить вот этот кусок:

Код: Выделить всё

'db'=>array(
            'connectionString' => 'pgsql:host=localhost;dbname=dbst',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => 'root',
            'charset' => 'utf8',
                        'tablePrefix' => 'st_',
        ),
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Re: Вопрос по созданию формы

Сообщение stardevil »

yiijeka писал(а):Скорее тут форма и yii вообще не причём.
Посмотрите php.ini
postgresql уверены что подключен в расширениях PHP?
Postrgesql у меня стоит отдельно (я пользуюсь pgAdmin) Так же пользуюсь IDE Netbeans и уже в ней подключаюсь к базе данных


А что в php.ini может быть не так?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Вопрос по созданию формы

Сообщение yiijeka »

>А что в php.ini может быть не так?

Может быть не подключено расширения для использования в PostgreSQL

P.S. Обновил выше ответ.
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Re: Вопрос по созданию формы

Сообщение stardevil »

yiijeka писал(а):Скорее тут форма и yii вообще не причём.
Посмотрите php.ini
postgresql уверены что подключен в расширениях PHP?

А если вы используете PostgreSQL, то он имеет форму записи не postgresql, а pgsql .
Тогда вам нужно в main.php не добавить, а изменить вот этот кусок:

Код: Выделить всё

'db'=>array(
            'connectionString' => 'pgsql:host=localhost;dbname=dbst',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => 'root',
            'charset' => 'utf8',
                        'tablePrefix' => 'st_',
        ),
 
К сожалению ошибка та же :(
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Re: Вопрос по созданию формы

Сообщение stardevil »

[quote="yiijeka"]>А что в php.ini может быть не так?

Может быть не подключено расширения для использования в PostgreSQL

Я использую Локальный сервер xampp

или лучше использовать Zend Server CE?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Вопрос по созданию формы

Сообщение yiijeka »

В php.ini найдите строку, начинающуюся с, ";extension=pgsql.so" и исправьте её так: "extension=pgsql.so". (Только уберите ";"). Сделайте то же самое с ";extension=pdo.so" and ";extension=pdo_pgsql.so". Если этих строк нет, добавьте их. Эти строки находятся в разделе файла "Dynamic Extensions", или в самом конце файла.
Перезапустите веб сервер

Но это будет работать, если в PHP (в XAMP) по умолчанию добавлены в папку php/ext драйвера PostgreSQL и PDO, если их там нету, то нужно установить (в гугле инфы полно)

>Или лучше использовать Zend Server CE?

Я не знаю что лучше, я веб сервер поднимаю сам... Знаю что в OpenServer точно есть PostgreSQL
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Re: Вопрос по созданию формы

Сообщение stardevil »

yiijeka писал(а):В php.ini найдите строку, начинающуюся с, ";extension=pgsql.so" и исправьте её так: "extension=pgsql.so". (Только уберите ";"). Сделайте то же самое с ";extension=pdo.so" and ";extension=pdo_pgsql.so". Если этих строк нет, добавьте их. Эти строки находятся в разделе файла "Dynamic Extensions", или в самом конце файла.
Перезапустите веб сервер

Но это будет работать, если в PHP (в XAMP) по умолчанию добавлены в папку php/ext драйвера PostgreSQL и PDO, если их там нету, то нужно установить (в гугле инфы полно)

>Или лучше использовать Zend Server CE?

Я не знаю что лучше, я веб сервер поднимаю сам... Знаю что в OpenServer точно есть PostgreSQL

А без подключения к базе данных никак не увидеть форму регистрации?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Вопрос по созданию формы

Сообщение yiijeka »

Без подключения к базе можно - создай модель на основе формы.
Вместо class User extends CActiveRecord используй extends CFormModel в исходном коде (http://sectronov.blogspot.com/2011/02/yii.html Файл models/User.php)

Только видеть то ты форму регистрации будешь, но где ты будешь хранить логин и пароль?
В файле модели что ли? :)

Подробнее смотрите руководство
stardevil
Сообщения: 19
Зарегистрирован: 2012.07.17, 21:27

Re: Вопрос по созданию формы

Сообщение stardevil »

yiijeka писал(а):Без подключения к базе можно - создай модель на основе формы.
Вместо class User extends CActiveRecord используй extends CFormModel в исходном коде (http://sectronov.blogspot.com/2011/02/yii.html Файл models/User.php)

Только видеть то ты форму регистрации будешь, но где ты будешь хранить логин и пароль?
В файле модели что ли? :)

Подробнее смотрите руководство
Большое вам спасибо!!! Изменил как вы сказали теперь вот такая ошибка Property "User.login" is not defined

вообщем надо мне разбираться ))
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Вопрос по созданию формы

Сообщение lancecoder »

я с пгс не особо
'password' => 'root'
это точно?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Вопрос по созданию формы

Сообщение yiijeka »

@lancecoder

Какая разница, что там написано. msql это или sql или sqllite или пгс

'password' => 'root' - это пароль для подключения к БД, он может быть любым ;)
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: Вопрос по созданию формы

Сообщение lancecoder »

o_0 фигасе а я только логин рут и пасс пустой юзаю, дефолтно же, вот и спросил
Ответить