Помогите новичку

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
satik
Сообщения: 14
Зарегистрирован: 2014.10.31, 13:56

Помогите новичку

Сообщение satik »

Всем привет! Начал учить Yii 2. Имею небольшой опыт с Yii 1. В принципе со старой версией разобрался, MVC уяснил. Однако по структуре Yii 2 это что то совсем другое (я про advanced). Пытаюсь просто в целях обучения сделать простой сайт, типа блога. Есть юзеры, которые публикуют статьи. Может, если кому не трудно, направит меня на верный путь. :roll: Что я сделал:

1. Разобрался с установкой. Создал проект, назвал test. Шаблон - advanced.
2. Создал базу данных. В ней 2 таблицы: 'user' и 'news'.
3. Подключаю БД. В старой версии все нужно было делать в protected/config/main.php. Здесь я так и не понял где конкретно это делается, так что изменил название БД с yii2advanced на test в 3-х файлах, которые называются main-local.php: в common/config, в environments/dev/common/config и в environments/prod/common/config. Кто может объясните мне, ущербному.
4. Теперь создаю модели через gii. Вот тут вопрос: куда мне их нужно создавать? Во frontend или в backend? Я создал и там и там. По 2 модели: user и news.
5. Так же через gii создаю CRUD. Как вы поняли, создал я их и во frontend, и в backend.
6. Сейчас получилось что в backend/controllers есть NewsController, SiteController, UserController. Так же и в frontend/controllers.
7. Хочу просто для проверки вывести на frontend/web/index.php имена из таблицы 'user'. Код из frontend/controllers/SiteController.php:

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

    
    public function actionIndex()
    {
        $data = User::model()->findAll();
        $this->render('index',array('data'=>$data));
    }

Код из index.php:

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

<?foreach($data as $key=>$value):?>{
    <p><?=$value->name?></p><br>
}
<?endforeach;>
Перехожу на http://localhost/test/advanced/frontend/web/, там такая ошибка:

PHP Fatal Error – yii\base\ErrorException
Class 'frontend\controllers\User' not found


Из-за чего она может быть? Это я еще даже не начинал с авторизацией и созданием новостей. Так что Yii 2 пока выглядит очень устрашающе. :oops: Просьба прокомментировать вышеуказанные пункты.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Помогите новичку

Сообщение samdark »

Скорее всего из за того, что такого класса нет.
satik
Сообщения: 14
Зарегистрирован: 2014.10.31, 13:56

Re: Помогите новичку

Сообщение satik »

Sam Dark писал(а):Скорее всего из за того, что такого класса нет.
Имеется ввиду модель? Так ведь модель User в папке models. А если нужен контроллер, то он присутствует.
dmeroff
Сообщения: 101
Зарегистрирован: 2012.06.05, 14:32
Откуда: Петрозаводск
Контактная информация:

Re: Помогите новичку

Сообщение dmeroff »

По пунктам:
3. Править нужно в common\config\main-local.php, в папке environments хранятся файлы, которые копируются в проект при инициализации командой init.
4. Если нужно и там и там, то создавайте в common\models.
5. Создавайте CRUD где-нибудь в одном месте (лучше, наверное в backend)

По поводу ошибки:
Класс созданной модели нужно импортировать в текущее пространство имен командой use, например:
use common\models\User
Иначе php ищет класс в текущем пространстве имен, что и вызывает ошибку, которая у вас появляется.
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Помогите новичку

Сообщение VaNnOrus »

Удалите все что натворили и начните с простой работы по инструкции. Сделаете то, что делалось в статьях - поймете что к чему.
Цитата из другой темы:
VaNnOrus писал(а):Создание простого приложения гуглится элементарно.
К примеру вот и вот.
satik писал(а):

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

User::model()->findAll() 
В yii2 так делать нельзя. Правильно так:

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

Класс::метод(); 
В данном случае:

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

User::findAll(); 
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Помогите новичку

Сообщение zelenin »

да почему все новички вместо того, чтобы прочитать документацию или поковырять аппсы из репозитория, начинают мучать посетителей этого форума?
satik
Сообщения: 14
Зарегистрирован: 2014.10.31, 13:56

Re: Помогите новичку

Сообщение satik »

VaNnOrus писал(а):Удалите все что натворили и начните с простой работы по инструкции. Сделаете то, что делалось в статьях - поймете что к чему.
Честно скажу, что прежде чем задать свой вопрос на форуме, в первую очередь я искал статьи и руководства в интернете. И эти ссылки, которые вы отправили, я видел. Дело в том, что там все или написано про basic, или еще про что-то. Например вот здесь: http://habrahabr.ru/post/178737/ сказано:
Перейдите в папку /var/www/yii2/protected/ и откройте файл config.php в любимом редакторе.
Вот про что это? Какая папка protected? Какой файл config.php?

Или вот здесь http://www.elisdn.ru/blog/60 написано:
urlManager мы добавили в оба файла config/console.php и config/web.php
У меня ни в одной папке config таких файлов нет.

А вот, еще один пример, что написано на офф. сайте вот здесь http://www.yiiframework.com/doc-2.0/gui ... bases.html:
open the file config/db.php and change the parameters to be correct for your database.
Знаете как я долго искал этот файл db.php? В итоге выясняется что нужно писать в common/main-local.php.

Если честно, такие руководства для новичка немного тяжелые и непонятны. Остается только писать на форум, чтобы знающие ответили да объяснили. Просто очень уж мне понравился Yii 1. И есть желание реализовать кое-какие идеи, большие проекты. Отсюда и начал с advanced.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Помогите новичку

Сообщение maleks »

начинайте изучать по basic шаблону. К фреймворку самому это не относится, шаблоны - это просто соглашения по дальнейшей разработке.
aspire
Сообщения: 40
Зарегистрирован: 2012.06.01, 12:18
Контактная информация:

Re: Помогите новичку

Сообщение aspire »

Сам когда начинал знакомиться выбрал шаблон basic. В конце концов моя архитектура стала похожа на смесь из basic и advanced. Вот ссылка(http://www.elisdn.ru/blog/60/seo-servic ... pplication) на человека который по моему мнению разложил начальную работу с yii2 не то что по полочкам, а даже больше.
ps. обязательно прочтите про namespase и проблем у вас уменьшиться в разы.
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Помогите новичку

Сообщение futbolim »

satik писал(а):
VaNnOrus писал(а):Удалите все что натворили и начните с простой работы по инструкции. Сделаете то, что делалось в статьях - поймете что к чему.
Честно скажу, что прежде чем задать свой вопрос на форуме, в первую очередь я искал статьи и руководства в интернете. И эти ссылки, которые вы отправили, я видел. Дело в том, что там все или написано про basic, или еще про что-то. Например вот здесь: http://habrahabr.ru/post/178737/ сказано:
Перейдите в папку /var/www/yii2/protected/ и откройте файл config.php в любимом редакторе.
Вот про что это? Какая папка protected? Какой файл config.php?

Или вот здесь http://www.elisdn.ru/blog/60 написано:
urlManager мы добавили в оба файла config/console.php и config/web.php
У меня ни в одной папке config таких файлов нет.

А вот, еще один пример, что написано на офф. сайте вот здесь http://www.yiiframework.com/doc-2.0/gui ... bases.html:
open the file config/db.php and change the parameters to be correct for your database.
Знаете как я долго искал этот файл db.php? В итоге выясняется что нужно писать в common/main-local.php.

Если честно, такие руководства для новичка немного тяжелые и непонятны. Остается только писать на форум, чтобы знающие ответили да объяснили. Просто очень уж мне понравился Yii 1. И есть желание реализовать кое-какие идеи, большие проекты. Отсюда и начал с advanced.
Статьи (как по мне) только запутывают. Идеально - это чтение официальных доков (тем более, что с английским всё в порядке). Статью пишет человек, который делает конкретный пример и который, скорее всего, не подойдёт Вам (да еще и знающий человек).
urlManager мы добавили в оба файла config/console.php и config/web.php У меня ни в одной папке config таких файлов нет.

Потому, что у Вас advanced.
Если честно, такие руководства для новичка немного тяжелые и непонятны
Для этого есть форум и поддержка, которая Вас не бросит.
И есть желание реализовать кое-какие идеи, большие проекты
. Амбиции? Или какие БОЛЬШИЕ проекты могут быть у новичка?
satik
Сообщения: 14
Зарегистрирован: 2014.10.31, 13:56

Re: Помогите новичку

Сообщение satik »

futbolim писал(а):Потому, что у Вас advanced.
Ну вот я о чем, то что в основном все статьи про basic.
futbolim писал(а):Для этого есть форум и поддержка, которая Вас не бросит.
Очень надеюсь на это.
futbolim писал(а):Амбиции? Или какие БОЛЬШИЕ проекты могут быть у новичка?
Я имею ввиду что учу для того, чтобы реализовать кое-какие свои идеи. Можно назвать и амбициями, наверно.

В общем, спасибо всем за советы).
Аватара пользователя
VaNnOrus
Сообщения: 96
Зарегистрирован: 2014.10.09, 12:50

Re: Помогите новичку

Сообщение VaNnOrus »

satik писал(а):Если честно, такие руководства для новичка немного тяжелые и непонятны. Остается только писать на форум, чтобы знающие ответили да объяснили. Просто очень уж мне понравился Yii 1. И есть желание реализовать кое-какие идеи, большие проекты. Отсюда и начал с advanced.
Я уже сказал - разберитесь для начала как фреймворк вообще работает. Для этого следуйте инструкциям в предложенных мной статьях с самого начала. На хабре немного устаревшая статья, там с бетой, вроде, работают. Не суть. На elisdn статьи актуальны.
Почему я не задаю таких вопросов как Вы? Я начал работать с фреймворком меньше месяца назад. До этого не работал не то что с yii1, с фреймворками вообще не работал. И используя mvc ничего не писал.

Начните с бэйсик шаблона. Не надейтесь, что не понимая "как это работает" Вы методом тыка и этого форума напишете продакшен крупного проекта. Боюсь спросить, с yii1 Вы так же разбирались?
futbolim писал(а):Статьи (как по мне) только запутывают. Идеально - это чтение официальных доков (тем более, что с английским всё в порядке). Статью пишет человек, который делает конкретный пример и который, скорее всего, не подойдёт Вам (да еще и знающий человек).
А вот с этим можно поспорить. Для того, чтобы разобраться как работает то, с чем начинаешь работать впервые, сделать в точности то, что сделали в какой-нибудь статье, чаще всего, значит понять базовые принципы работы. Никто не говорит, что это "подходит именно вам". Оно и не должно. Оно дает стартовый толчок для разработки с исрользованием новых средств.
Однако, я не сказал, что не нужно читать оф документацию. Это априори.
Аватара пользователя
GreenJunior
Сообщения: 43
Зарегистрирован: 2014.07.20, 20:30

Re: Помогите новичку

Сообщение GreenJunior »

zelenin писал(а):да почему все новички вместо того, чтобы прочитать документацию или поковырять аппсы из репозитория, начинают мучать посетителей этого форума?
Может потому что форум для этого и создан, не?
Все когда-то начинали
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Помогите новичку

Сообщение zelenin »

GreenJunior писал(а):
zelenin писал(а):да почему все новички вместо того, чтобы прочитать документацию или поковырять аппсы из репозитория, начинают мучать посетителей этого форума?
Может потому что форум для этого и создан, не?
для помощи. а не для обучения тому, что естьв документации.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Помогите новичку

Сообщение samdark »

Закрываю тему потому как обсуждается туча всего и сразу. Создавайте отдельные темы по отдельным вопросам. Спасибо.
Закрыто