Интерактивное руководство создания сайта на Yii2 на русском языке

Обсуждение документации второй версии фреймворка. Переводы Cookbook и авторские рецепты.
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение Onotole »

zelenin писал(а):
Onotole писал(а):
zelenin писал(а): ха-ха, луза! яндексом пользуется! (шутка)
Я патриот :lol: :lol:
тогда спутником пользуйся)
Не на столько :lol:

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

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение yiijeka »

@AntonyKor
https://github.com/githubjeka/yii2-tuto ... я-advanced
Там выше было написано :
то скорее всего увидите ошибку Database Exception....
Сейчас наш сайт пытается подключится к базе данных yii2advanced MySQL. Yii не ограничивает вас в выборе базы данных, вы можете легко изменить базу данных, будь то MySQL, MSSQL, PostgreSQL или другие. Для обучения будем использовать SQLite, так как она компактная и не требует накладных расходов. Знать тонкости синтаксиса SQLite не придётся, так как в большинстве случаев вместо SQL будет использоваться ORM подход.
Обратите внимание, что для работы PHP и SQLite потребуется подключение php_pdo_sqlite. Проверьте подключено ли оно у вас.

AntonyKor
Сообщения: 7
Зарегистрирован: 2015.12.30, 22:04

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение AntonyKor »

yiijeka писал(а):Проверьте подключено ли оно у вас.[/b]
На странице проверки было написано
php_pdo_sqlite подключено.
Именно это меня и запутало

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

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение yiijeka »

Ну оно подключено для web, а для php который в консоле запускается имеет другой php.ini . Вот и накладочка вышла :)

AntonyKor
Сообщения: 7
Зарегистрирован: 2015.12.30, 22:04

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение AntonyKor »

Теперь не сохраняются данные в таблицу. Точнее все поля, кроме ID пустые: Изображение
Решил проверить наличие данных в переменных модели. Для этого добавил их вывод в "setFlash"

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

'Спасибо, что уделили время. В ближайшее время будут опубликованы результаты.'.'$model->name='.$model->name.'$model->sex='.$model->sex.'$model->planets='.$model->planets.'$model->astronauts='.$model->astronauts.'$model->planet='.$model->planet
Данные выводятся, значит проблема в $model->save. Но все же в чем может быть там проблема?


Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение rugabarbo »

Код модели дайте посмотреть. У нас кофейная гуща закончилась.

AntonyKor
Сообщения: 7
Зарегистрирован: 2015.12.30, 22:04

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение AntonyKor »

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

<?php

namespace common\models;

use Yii;

/**
 * This is the model class for table "interview".
 *
 * @property integer $id
 * @property string $name
 * @property boolean $sex
 * @property string $planets
 * @property string $astronauts
 * @property integer $planet
 */
class Interview extends \yii\db\ActiveRecord
{
    public $name;
    public $sex;
    public $planets;
    public $astronauts;
    public $planet;
    public $verifyCode;

    public function rules()
    {
        return [
            [['name', 'sex', 'planets', 'astronauts', 'planet', 'verifyCode'], 'required'],
            ['name', 'string'],
            ['sex', 'boolean', 'message' => 'Пол выбран не верно.'],
            [
                ['planets', 'planet'],
                'in',
                'range' => range(0, 7),
                'message' => 'Выбран не корректный список планет.',
                'allowArray' => 1
            ],
            [
                'astronauts',
                'in',
                'range' => range(0, 5),
                'message' => 'Выбран не корректный список космонавтов.',
                'allowArray' => 1
            ],
            ['verifyCode', 'captcha'],
        ];
    }

    public function attributeLabels()
    {
        return [
            'name' => 'Имя',
            'sex' => 'Пол',
            'planets' => 'Какие планеты обитаемы?',
            'astronauts' => 'Какие космонавты известны?',
            'planet' => 'На какую планету хотели бы полететь?',
            'verifyCode' => 'Проверочный код',
        ];
    }
    public function beforeSave($insert)
    {
        if (parent::beforeSave($insert)) {
            $this->planets = implode(',', $this->planets);
            $this->astronauts = implode(',', $this->astronauts);
            return true;
        }

        return false;
    }

} 

Аватара пользователя
samdark
Администратор
Сообщения: 9404
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение samdark »

public поля убейте.


Аватара пользователя
Express777
Сообщения: 10
Зарегистрирован: 2016.02.28, 01:27

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение Express777 »

Здравствуйте.
Спасибо большое за туториал.
Возник вопрос. Как вы дебажите встроенный сервер в PHPStorme? А если конкретнее этот туториал.

Просто при пользовании xdebug-om в xampe не вызывает проблем. Но никак не могу настроить на слушание встроенного сервера. Не могли бы вы скинуть свои настройки?

Аватара пользователя
Express777
Сообщения: 10
Зарегистрирован: 2016.02.28, 01:27

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение Express777 »

Не мог понять в чем ошибка. Шаг step-0.3.
При повторном опросе не бросалось исключение. Редактировал сначала в Sublime. Затем перешел на PHPstorm и он сразу показал ошибку.

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

class AccessOnce extends Behavior
{        
    public function events()
    {
        $owner = $this->owner;
    
        if ($owner instanceof Controller) {
            return [
                $owner::EVENT_BEFORE_ACTION => 'имя_обработчика',
                $owner::EVENT_AFTER_ACTION => 'имя_обработчика',
            ];
        }
        
        return parent::events();
    }
}
Правильно будет

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

if ($owner instanceof \yii\web\Controller) {
            return [
                $owner::EVENT_BEFORE_ACTION => 'checkAccess',
                $owner::EVENT_AFTER_ACTION => 'closeDoor',
            ];
        }
То есть не указан неймспейс класса. Из за этого результат проверки всегда была false.
Другая более легкая ошибка.

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

throw new HttpException(403, $this->message);
// правильно
throw new \yii\web\HttpException(403, $this->message);
Тоже не был указан неймспейс. Но здесь уже сам фреймворк подскажет. А на первую ошибку не ругается, из за этого пришлось потратить время на проверку всего остального.

Хм. Странно. Неужели ни у кого еще не возникло этой ошибки?


Аватара пользователя
samdark
Администратор
Сообщения: 9404
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение samdark »

Надо будет это руководство как-то хорошо подать на новом yiiframework.ru...

Аватара пользователя
OtezVikentiy
Сообщения: 25
Зарегистрирован: 2016.05.27, 15:06

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение OtezVikentiy »

yiijeka писал(а):исправлено - https://github.com/githubjeka/yii2-tutorial/issues/18
Приветствую, вопрос наверное не очень в тему, но никак не могу запустить этот туториал. Запускаю четко как описано в инструкции - пишет:

Не удается получить доступ к сайту
Сайт localhost не позволяет установить соединение.
Выполните поиск по запросу localhost 8888 scripts в Google
ERR_CONNECTION_REFUSED

Если запускаю на xampp пишет:

Сервер PHP запущен не из той директории. Выполните "php -S localhost:8888" из "yii2-tutorial"

Подскажи, пожалуйста, может что-то не так делаю? А то я в этом новичок, первый раз пробую с github что-то запустить...

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

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение yiijeka »

Всё правильно делаете.

kopyrin
Сообщения: 8
Зарегистрирован: 2016.06.29, 09:30

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение kopyrin »

// Файл yii2-app-advanced/tests/codeception/frontend/acceptance.suite.yml
modules:
enabled:
- PhpBrowser
- tests\codeception\common\_support\FixtureHelper
config:
PhpBrowser:
url: http://localhost:8080

Проблема в том что нет такого файла. При создании тестов запускается команда "codecept bootstrap" она то их и создает. А такой команды в учебнике нет.

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

Re: Интерактивное руководство создания сайта на Yii2 на русском языке

Сообщение yiijeka »

codecept bootstrap не надо запускать, в advanced уже всё создано https://github.com/yiisoft/yii2-app-adv ... n/frontend

и в "учебнике" тоже есть https://github.com/githubjeka/yii2-tuto ... n/frontend . Что то у вас локально не то.

Ответить